私はデータベースとしてMySQLを使用しているRails開発者初心者です。次のコマンドを使用してMySQLに正常に接続できます:
MySQL -u macDaddy -p
コマンドプロンプトで、ユーザーが有効でMySQLが実行されていることがわかります。しかし、私が走ろうとすると
rake db:schema:dump
コマンドラインでこのエラーが発生します:rakeが中止されました! 'localhost'のMySQLサーバーに接続できません(10061)
Database.ymlに何か問題がありますか?ここにあります:
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: bookmobile
pool: 5
username: macDaddy
password: booklover
Host: localhost
socket: mysql
port: 3306
ポートとソケットのラインも削除しようとしましたが、それでも同じエラーが発生します。助けてください。これが私のバージョンです:Windows7での開発
MySQL Ver 14.14は、win64サーバーバージョン5.5.21の5.5.21を配布します。
Rails 3.2.1
ありがとう!
私の推測では、Windowsとして指定したマシンでは、IPv6ネットワークが有効になっています。したがって、ローカルホストに移動しようとすると、「:: 1」に解決されます。これは実際にはローカルマシンですが、デフォルトのMySQLインストールでは通常bind-addressが127.0.0.1に設定されているため、このセットアップでlocalhostが失敗します。
これを確認するには、コマンドプロンプトからping localhost
を実行し、次のような応答が返されるかどうかを確認します。
Reply from ::1: time<1ms
これを修正するには、構成を変更して次のように指定します。
Host: 127.0.0.1
または、MySQLの構成を変更して、別のバインドアドレスを許可することもできます。 127.0.0.1ではなくlocalhost。
ホストをHost:127.0.0.1に変更するだけです
database.ymlのHostの値を"127.0.0.1"に変更すると機能します。または、PCのhostsファイルを変更して、「localhost127.0.0.1」としてアイテムを追加することもできます。
同様のエラーが発生しましたが、それはポート3306がdatabase.ymlにないためでした。ポートを追加すると、3306の問題が解決されました。
mySQLの作成時に設定したポート番号(例:7777)を確認し、適切な「ユーザー名」と「パスワード」を使用してポート番号を追加してください。
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password: admin
Host: localhost
port: 7777
appディレクトリのconfigディレクトリにあるdatabase.ymlにあります。
データベースサーバー(mysql)にパスワードが設定されていないため、次のことを試してください。
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: bookmobile
pool: 5
username: macDaddy
password:
Host: localhost
socket: mysql
port: 3306