私は新しい Rails 開発者で、レガシー Rails アプリに取り組んでいます。rake db:create コマンドを実行すると、データベースを作成できないというエラーが表示されます。これに関連する多くの StackOverflow の質問を見つけましたが、ソリューションのほぼすべての順列のトラブルシューティングで、問題を解決できませんでした。
3 つのデータベース (dev、prod、test) を作成し、これらのデータベースへのすべてのアクセス権限を持つユーザーを作成して、rake db:create
.
Mac OS X Lion、MySQL 5.5.28、Rails 2.3.5、Ruby 1.8.7 を実行しています。ここに私の設定があります
development:
adapter: mysql
encoding: utf8
database: adva_development
username: adva
password: ****
host: localhost
socket: /tmp/mysql.sock
エラーは次のとおりです。
Couldn't create database for {"adapter"=>"mysql", "username"=>"adva", "host"=>"localhost", "encoding"=>"utf8", "database"=>"adva_development", "socket"=>"/tmp/mysql.sock", "password"=>"****"}, charset: utf8, collation: utf8_unicode_ci (if you set the charset manually, make sure you have a matching collation)
次のトラブルシューティングを行いました。
確認済みのユーザーとパスワードが正しく、ユーザーは DB にアクセスできます。([ユーザー] でユーザー アクセスを再確認すると、
SELECT * FROM mysql.db WHERE Db = 'adva_development' \G;
すべての権限が付与されます。)ソケットが正しいことを確認します。ソケットについてはよくわかりませんが、/tmp/mysql.sock ではっきりと確認できます。
照合順序と文字セットを確認しました。ラテン文字セットと照合順序で DB を作成したことがわかったので、それらを再作成しました。私は実行
show variables like "collation_database";
してshow variables like "character_set_database";
、それぞれ utf8 と utf8_unicode_ci で戻ってきました。この質問の指示に従いました。mysql gem をアンインストールした後、次のコマンドを実行しましたが、同じエラーが発生しました。
gem install --no-rdoc --no-ri mysql -- --with-mysql-dir=/usr/local/mysql-5.5.28-osx10.6-x86_64/bin --with-mysql-config=/usr/local/mysql-5.5.28-osx10.6-x86_64/bin/mysql_config
Matt の提案に従って、次のことが
rake --trace db:create
明らかになります。** Invoke db:create (first_time) ** Invoke db:load_config (first_time) ** Invoke rails_env (first_time) ** Execute rails_env ** Execute db:load_config ** Execute db:create Couldn't create database for {"database"=>"adva_development", "adapter"=>"mysql", "host"=>"127.0.0.1", "password"=>"woof2adva", "username"=>"adva", "encoding"=>"utf8"}, charset: utf8, collation: utf8_unicode_ci (if you set the charset manually, make sure you have a matching collation)
3 日と 6 ~ 7 時間後、ほとんど選択肢がなくなりました。localhost を 127.0.0.1 に置き換えて無駄にするなど、さまざまなランダムなことを試しました。
私の特定の環境に関連して何か問題があるのでしょうか? Mac OS X ライオン + MySQL 5.5.28? Linux環境ですべてをセットアップしようと計画しています。
ありがとう!