rake db:当凭据在database.yml中时,创建要求MySQL根凭据

时间:2017-10-13 17:27:24

标签: mysql ruby-on-rails ruby

ruby '2.3.0'
gem 'rails', '4.2.6'

rake命令db:createdb:migrate以及其他所有命令似乎都坚持使用MySQL root用户。我为应用

定义了特定用户my_user

配置/ database.yml的

development:
  adapter: mysql2
  database: my_database
  username: my_user
  password: abcd1234

当我运行rake db:create时,它要求root凭据。

  

$ rake db:创建
  用户访问被拒绝' root' localhost' (使用密码:否)请提供MySQL安装的root密码   
>

我可以通过命令行成功登录mysql并创建一个表:

mysql -u my_user -p my_database -e "create table foo (id int)"

这成功执行。

最奇怪的部分是,如果我点击输入(有或没有密码),命令将继续运行,最后一行会说

  

无法为{"适配器" =>" mysql2","数据库" =>" my_database&#34创建数据库;," pool" => 5,"超时" => 5000}

我的root用户 有密码,因此无需密码即可登录。但是当我签入mysql时,数据库已经创建。我在其他命令上遇到类似错误,但在db:schema:load期间始终失败 - 即使schema.rb为空。唯一的错误总是,

  

Mysql2 ::错误:访问被拒绝用户' root' @' localhost' (使用密码:否)

如何让rake使用database.yml中的真实凭据?

0 个答案:

没有答案