エラー2003(HY000): '127.0.0.1'(111)のMySQLサーバーに接続できません


135

次のコマンドを使用します。

mysql -u root -h 127.0.0.1 -p

そしてエラーメッセージは:

ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

だれがそれを修正するのを手伝ってくれますか?


3
mysqlデーモンは実行されていますか?ファイアウォールがありますか?mysqlにtelnetして、デフォルトのポートは306にできますか?telnet localhost 3306
mmmmmm

mysqlデーモンが実行されています。私は確信しています。
チャーリーEpps

1
それは私だけですか、それともローカルのmysqlサーバーに接続している場合は、ホストを指定する必要はありません。
RMcLeod 2009年

念のため、ローカルでdbサーバーに接続しようとしていますか?
John Kane

私はubuntu-12.04.2にmysqlを新しくインストールしました。バージョンは14.14 Distrib 5.5.32で、readline 6.2を使用するdebian-linux-gnu(x86_64)の場合、デフォルト設定には「skip-networking」が含まれていません。したがって、このバージョンではエラーは発生しません。

回答:


220

あなたが使用している場合ubuntu、あなたは(何の複製が有効になっていませんがある場合)、このエラーを回避するには、次の手順を使用する必要があります。

  1. コマンドを実行する vim /etc/mysql/my.cnf
  2. bind-address = 127.0.0.1#記号を使用したコメント
  3. mysqlサーバーを1回再起動します。

更新

手順1 bind-addressで、my.cnfファイルが見つからない場合は、ファイルで探し/etc/mysql/mysql.conf.d/mysqld.cnfます。

MySQLレプリケーションが有効な場合の更新

IPMySQLサーバーが 'my.cnf instead oflocalhost or 127.0.0.1`にバインドされているMySQLサーバーに接続してみてください。


8
ありがとうございました!!!私は長い間これを理解しようとしていました!その行をコメント化し、ファイルを保存してから実行しましたservice mysql restart。そして今、それは機能します!
Ryan

私の場合、bind-addressには127.0.0.1ではなくサーバーのアドレスを使用していました。これが当てはまる場合は、コメントアウトする必要もあります。
Vlad Schnakovszki 14

4
何もありませんbind-address = 127.0.0.1/etc/mysql/my.cnf
RegarBoy

6
@developer、私はここで鉱山を発見した:/etc/mysql/mysql.conf.d/mysqld.cnfを
一度

bind-address = <main server ip>を変更しましたが、mysqlを再起動できません。
Avi Kehat 2017

14

localhost代わりに127.0.0.1、またはで試してくださいconnection-config。Debian Squeezeサーバーで私のために働いた


ローカルホストを指定する場合、FYIは、MySQLにTCPソケットではなくUNIXソケット(ubuntuでは/var/run/mysqld/mysqld.sock)経由で接続するように指示します。
デューク

8

これは、接続する前にデータベースを起動するのを忘れたときに発生します。

mysql.server start

その後

mysql -u root -p -h 127.0.0.1

MacとLinuxのターミナルで。Windows CMDでも同じだと思いますが、よくわかりません。
ヘンリー

sudo service mysqld startMySQL Community Server を使用するAWS EC2インスタンスでMySQL サーバーを起動する必要がありました。
harshainfo

6

私の場合(リモート接続)は、サーバーのファイアウォールをオフにするのに役立ちました。

service iptables stop

@ramおそらく他のファイアウォールを使用しています。または、問題はファイアウォールではありません。Linuxディストリビューションのドキュメントを確認してください。
Bunyk、2015年

1
@ram tryservice firewalld stop
Maxim Mazurok

1
MySQLは通常ポート3306で実行されるため、ファイアウォールに追加します
kurdtpage

6

この問題は、MySQLサーバーがインストールおよび実行されていないために発生する可能性があります。これを行うには、adminとしてコマンドプロンプトを起動し、コマンドを入力します。

"C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin\mysqld" --install

「サービスが正常にインストールされました」というメッセージが表示された場合は、MySQLサービスを開始する必要があります。これを行うには、[サービス]ウィンドウに移動します(タスクマネージャ->サービス->サービスを開く)。MySQLを検索し、上部のナビゲーションバーから起動します。次に、mysql.exeを開こうとすると、機能します。


2
少し間違い、cd "C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin" そしてmysqld --install。また、サーバー番号はダウンロードによって異なります。
Dejazmach

これを行うと私の問題が解決しました
Steffi Keran Rani J

6

見てmy.cnfそこに含まれている場合は、ファイル[client]のセクションを、そしてport実際のポート(デフォルト3306)を聞く以外では、明示的なパラメータを使用してサーバーに接続する必要があり-P 3306、例えば

mysql -u root -h 127.0.0.1 -p -P 3306


どこで検索できmy.cnfますか?それは私のラップトップのwampサーバーにはありません
Deepak Keynes

Windowsでは通常「my.ini」と呼ばれます
Yu Jiaao

私にとって移植は問題でした。ありがとう
Chandra Eskay 2018

0

mysql構成ファイル(my.iniまたはmy.cnf)でbind-addressパラメーターを127.0.0.1に変更するか、そこで定義されているものを使用する必要があります。

それが機能しない場合は、mysqlサービスが実際に実行されていることを確認する必要があります。


1
「bind-address = 127.0.0.1」という行をファイルmy.cnfに追加しました。しかし、それは機能しません。
チャーリーEpps

2
この行が存在する場合、mysqlはリストされたアドレスのみをリッスンします。リモートアクセスを有効にするには、この行を削除する必要があります。これがセキュリティに与える影響に注意してください。
webkraller 2011

bind-address =127.0.0.1my.cnfに追加すると、DBへのリモート接続が無効になります。だからそれがうまくいくとしても(そうではありません)、それは良い解決策ではありません。
alfasin 2012

他の誰かに接続させたくない場合を除いて、bind-addressは0.0.0.0でなければなりません。
ローンの侯爵

0

デフォルト以外のポートで実行している場合は、--port=<port num> 提供されて--skip-networkingいるnot enabled.


0

私はこの問題を抱えています... Win7とWampサーバーで実行しています... これ読んだ後

ウイルス対策ファイアウォールが問題の原因であることがわかりました。


0

私も同じ問題に直面していました。以下は、私が問題を修正するのに役立ちました。コントロールパネル->管理ツール->この内部のサービスに移動します。間違いなく、MySQLサービスが表示されます。右クリックして、start(force start)と言います。


0

Dockerユーザーの場合-を使用してローカルSQLに接続しようとしているときにmysql -u root -h 127.0.0.1 -p、データベースが Dockerコンテナーで実行されていることをdocker ps確認します。コンテナーがダウンすると、接続エラーが発生します。

ベストプラクティスは/etc/hosts、マシンにIPアドレスを設定することです。

127.0.0.1 db.local

それを実行する mysql -u root -h db.local -p


0

iptablesをシャットダウンせず、ポート3306を開いてみてください。

sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

またはsudo ufw allow 3306ufwを使用する場合。

チェック:netstat -lnp | grep mysqlあなたはそのようなsthを取得する必要があります:

cp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2048/mysqld         
tcp6       0      0 :::33060                :::*                    LISTEN      2048/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     514961   2048/mysqld          /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     STREAM     LISTENING     514987   2048/mysqld          /var/run/mysqld/mysqlx.sock

nullがある場合は、cnfファイルのポート= 3306の前の#を削除します。


0

MySqlサーバーがlocalhostで実行されていることを確認してください。

Linuxの場合

MySqlサーバーが実行されているかどうかを確認するには:

sudo service mysql status

MySqlサーバーを実行するには:

sudo service mysql start

Windowsの場合

MySqlサーバーが実行されているかどうかを確認するには:

C:\Windows\system32>net start

MySqlがリストにない場合は、MySqlを起動/実行する必要があります。

MySqlサーバーを実行するには:

C:\Windows\system32>net start mysql

お役に立てれば。



-2

私はmysqlサーバーを再起動し、Windowsで問題を解決しました。ネットストップMySQL、ネットスタートMySQl ubuntu linux sudoサービススタートmysql

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.