rails 出现 Access denied for user 'root'@'localhost'

很崩溃的问题
我之前开发的环境是ubuntu8.10的64位版本,rails程序运行正常。
之后我在ubuntu8。10的32位版本下安装了新的rails环境,是和之前的环境一致的,将原来的程序考过来,结果就出现 Access denied for user 'root'@'localhost' (using password: YES)的错误,已经确认配置是正确的,不知道还有什么原因能造成这个问题呢?

找了很久,也没找到和我相似的问题。。。。。

应该是移植过程的数据库问题

  1. 检查数据库和驱动是否安装正确
    就是登录对应的数据库,做一个查询

  2. 检查config下的database.yml文件是否配置正确
    就是看你的root和用户是否写对了

  3. 删除数据库,修改database.yml从新建一个用户
    并给这个用户权限
    [code="linux"]grant all on depot_development.* to 'david'@'localhost' identified by 'lovelove'; [/code]
    或者
    [code="linux"]GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;[/code]

  4. 或者你很不确定的话,下面的测试脚本也会帮上忙,当然,如果你用mysql的话
    [code="ruby"]
    require "mysql"

    begin

    dbh = Mysql.real_connect("localhost", "testUser", "testPassword", "testDB")

    dbh.query("drop table if exists test_rb")
    dbh.query("create table test_rb(id int,name varchar(20))")
    dbh.query("insert into test_rb values(1,'ss')")
    dbh.query("insert into test_rb values(1,'aaa')")
    printf "%d rows were inserted\n",dbh.affected_rows

    res=dbh.query("SELECT name FROM test_rb")
    puts "===============\n"
    while row=res.fetch_row do
    printf "%s,%s\n",row[0],row[1]
    end
    puts "================\n"
    puts "Server version:"+dbh.get_server_info
    rescue Mysql::Error=>e
    puts "Error code:#{e.errno}"
    puts "Error message:#{e.error}"
    puts "Error SQLSTATE:#{e.sqlstate}" if e.respond_to?("sqlstate")
    ensure
    dbh.close if dbh
    end
    [/code]

如果配置正确,把password放在引号里试一下

password: 'secret'