尝试使用带有rails的远程mysql数据库时,它会忽略database.yml文件中的host参数,而是尝试连接到本地服务器名称。我已经使用XXX和localservername清理了下面的信息。
以下是开发的database.yml条目:
development:
adapter: mysql2
encoding: utf8
database: temp_admin_development
username: XXX
password: XXX
host: 10.X.X.X
port: 3306
以下是运行rake db:create:
时出现的错误rake aborted!
Mysql2::Error: Access denied for user 'XXX'@'localservername' to database 'temp_admin_development': CREATE DATABASE `temp_admin_development` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`
以下是通过irb连接的手动尝试: Mysql2 :: Client.new(:host =>“10.X.X.X”,:username =>“XXX”)
Mysql2::Error: Access denied for user 'XXX'@'localservername' (using >password: NO)
from /home/XXX/.rvm/gems/ruby-1.9.3-p429/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `connect'
from /home/XXX/.rvm/gems/ruby-1.9.3-p429/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `initialize'
from (irb):2:in `new'
from (irb):2
from /home/XXX/.rvm/rubies/ruby-1.9.3-p429/bin/irb:16:in `<main>'
请注意,它正在尝试连接到本地服务器名称并忽略要传递的主机参数。
答案 0 :(得分:1)
我们发现了这个问题。主机实际上已被正确拉入。问题是我们必须指定一个已存在于mysql中的数据库,而不是新数据库。一旦指定了rake db:migrate就可以了。