2
當試圖在rails中使用遠程mysql數據庫時,它會忽略database.yml文件中的主機參數,並嘗試連接到本地服務器名稱。我使用XXX和localservername清理了以下信息。Rails使用本地主機而不是遠程ip主機連接到mysql2
下面是發展的database.yml條目:
development:
adapter: mysql2
encoding: utf8
database: temp_admin_development
username: XXX
password: XXX
host: 10.X.X.X
port: 3306
這裏是運行耙分貝時,我們得到的錯誤:創建:
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(:主機=> 「10.XXX」:用戶名=> 「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>'
注意它正試圖連接到本地服務器名稱並忽略正在傳遞的主機參數。
我們發現了這個問題。主機實際上被正確拉入。問題是我們必須指定一個已經存在於mysql中的數據庫,而不是一個新的數據庫。一旦指定了rake db:migrate工作。 – dmautz