2011-02-06 16 views
2

Ruby on Rails用にMySQL DBをセットアップできません。 DBをセットアップし、config/database.ymlファイルが一致したことを確認した後、私は以下のエラーメッセージを表示しています。rake db:migrateの問題 -

U:\Rails\alpha>rake db:migrate --trace 
(in U:/Rails/alpha) 
** Invoke db:migrate (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Execute db:migrate 
rake aborted! 
Access denied for user 'admin'@'207-237-91-100.c3-0.avec-ubr13.nyr-avec.n 
y.cable.rcn.com' (using password: YES) 
C:/Ruby187/lib/ruby/gems/1.8/gems/mysql2-0.2.6-x86-mingw32/lib/mysql2/client.rb: 
37:in `connect' 
C:/Ruby187/lib/ruby/gems/1.8/gems/mysql2-0.2.6-x86-mingw32/lib/mysql2/client.rb: 
37:in `initialize' 
C:/Ruby187/lib/ruby/gems/1.8/gems/mysql2-0.2.6-x86-mingw32/lib/active_record/con 
nection_adapters/mysql2_adapter.rb:14:in `new' 
C:/Ruby187/lib/ruby/gems/1.8/gems/mysql2-0.2.6-x86-mingw32/lib/active_record/con 
nection_adapters/mysql2_adapter.rb:14:in `mysql2_connection' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/connectio 
n_adapters/abstract/connection_pool.rb:230:in `send' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/connectio 
n_adapters/abstract/connection_pool.rb:230:in `new_connection' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/connectio 
n_adapters/abstract/connection_pool.rb:238:in `checkout_new_connection' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/connectio 
n_adapters/abstract/connection_pool.rb:194:in `checkout' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/connectio 
n_adapters/abstract/connection_pool.rb:190:in `loop' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/connectio 
n_adapters/abstract/connection_pool.rb:190:in `checkout' 
C:/Ruby187/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/connectio 
n_adapters/abstract/connection_pool.rb:189:in `checkout' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/connectio 
n_adapters/abstract/connection_pool.rb:96:in `connection' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/connectio 
n_adapters/abstract/connection_pool.rb:318:in `retrieve_connection' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/connectio 
n_adapters/abstract/connection_specification.rb:97:in `retrieve_connection' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/connectio 
n_adapters/abstract/connection_specification.rb:89:in `connection' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/migration 
.rb:486:in `initialize' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/migration 
.rb:433:in `new' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/migration 
.rb:433:in `up' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/migration 
.rb:415:in `migrate' 
C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-3.0.1/lib/active_record/railties/ 
databases.rake:142 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_cal 
l_chain' 
C:/Ruby187/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_cal 
l_chain' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_excep 
tion_handling' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_excep 
tion_handling' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run' 
C:/Ruby187/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31 
C:/Ruby187/bin/rake:19:in `load' 
C:/Ruby187/bin/rake:19 

パスワードを15回以上確認しましたが、私の言う限りでは正しいです。

database.ymlファイル:

development: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: dbname 
    pool: 5 
    username: admin 
    password: pwhere 
    host: sql.domain.com 

おかげ

+0

どのGRANT文をmysqlで実行しましたか?そして、DBはレールと同じホストにあるのですか、あるいは別のホストですか? – user510365

答えて

2

これをテストする方法の1つは、railsが存在するマシンからコマンドラインでmysqlに接続することです。何かのように

mysql -u admin -ppwhere -h sql.domain.com 

このように接続することはできません。もしそうなら、おそらくGRANTに問題があります。これはおそらくGRANTに間違ったホストを指定したためです。例えば、DBとレールが同じマシンにある場合、mysqlはあなたがレールボックスのDNS名の代わりに 'localhost'から接続していると思うかもしれません(またはその逆)。あなたは、単にすべてにadminユーザーのアクセスを許可したい場合があり、冒頭に

GRANT ALL ON *.* to 'admin'@'whereever_rails_lives' IDENTIFIED BY 'pwhere' 

mysql grant syntax

トリックはしばしば「whereever_rails_lives」の権利を得ています。

+0

My dbはドメイン上にセットアップされており、phpMyAdmin 3.3.7を使用してドメインで正常にログインできます。 ホストの行は次のようになります。 ホスト:sql.domain.com sql.domain.comにアクセスすると、phpMyAdminは自分の設定をDBに反映させます。 – user605065

+1

問題を解決しました。 簡単に言えば、マシンのアドレスをホストパネルから「許容ホスト」のリストに追加する必要がありました。 – user605065

-3

あなたのパーミッションが正しくありません。これは実際には2つのことを意味するため、このような不自然なエラーです。 1)パスワード/ユーザー名の組み合わせが間違っています。また、gemの問題、インストールの問題に接続することを意味するmysqlに接続できません。 MySQLは面倒なことができます!

あなたの質問から、私はあなたがこのすべてにかなり新しいことを集めています。私が示唆しているのは、MySQLに接続することについての心配ではなく、sqliteから始めることです。あなたは全文検索や、liteが提供しない他の機能は必要ありません!

だから、sqlite3を使いましょう。どうやって?

これはあまり効果がありません。レールアプリを作って、rake db:createとすれば完了です。そして、あなたがmysqlデータベースの機能を必要とするとき、あなたはRailsに精通していて、デバッグの面で、何が起こっているのかを本当に知ることができます。

関連する問題