web-dev-qa-db-ja.com

Rails開発-'localhost 'のMySQLサーバーに接続できません(10061)

私はデータベースとして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

ありがとう!

14

私の推測では、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。

41
futureal

ホストをHost:127.0.0.1に変更するだけです

5
N Khan

database.ymlHostの値を"127.0.0.1"に変更すると機能します。または、PCのhostsファイルを変更して、「localhost127.0.0.1」としてアイテムを追加することもできます。

4
Mr.Right

同様のエラーが発生しましたが、それはポート3306がdatabase.ymlにないためでした。ポートを追加すると、3306の問題が解決されました。

4
ziggrat

mySQLの作成時に設定したポート番号(例:7777)を確認し、適切な「ユーザー名」と「パスワード」を使用してポート番号を追加してください。

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: admin
  Host: localhost
  port: 7777

appディレクトリのconfigディレクトリにあるdatabase.ymlにあります。

1
Kathirmalan

データベースサーバー(mysql)にパスワードが設定されていないため、次のことを試してください。

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: bookmobile
  pool: 5
  username: macDaddy
  password:
  Host: localhost
  socket: mysql
  port: 3306
1
Someth Victory