为什么ActiveRecord使用root用户而不是指定的用户?

时间:2012-12-11 07:26:27

标签: ruby-on-rails activerecord

以下是代码:

require 'active_record'

ActiveRecord::Base.establish_connection(
  adapter: 'mysql',
  user: 'dev',
  database: 'dev_db'
)

class PageModel < ActiveRecord::Base
end

p PageModel.first

这是错误:

mysql_adapter.rb:411:in `real_connect': Access denied for user 'root'@'localhost' (using password: NO) (Mysql::Error)

为什么要尝试以root身份连接?

MySQL dev用户存在,没有密码且对dev_db数据库具有完全访问权限。

尝试通过TCP和unix socket连接,同样的错误。

DataMapper连接效果很好。

$ gem list |grep mysql
mysql (2.8.1)
$ gem list |grep activere
activerecord (3.2.9)

1 个答案:

答案 0 :(得分:1)

正确的密钥是:username,而不是:user