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


このチュートリアルは、MySQLデータベースサーバーにアクセスしようとしたときに発生する可能性のある「エラー2003(HY000):「127.0.0.1」(111)のMySQLサーバーに接続できません」を解決するために必要な手順を説明することを目的としています。

先に進む前に、MySQL/MariaDBを初めて使用するLinuxユーザーの場合は、初心者向けのMySQL/MariaDB –パート1および20 Linuxでのデータベース管理用のMySQL(Mysqladmin)コマンドの学習も検討してください。

一方、すでに中級/経験豊富なMySQLユーザーである場合は、これらの15の便利なMySQL/MariaDBパフォーマンスチューニングおよび最適化のヒントを習得できます。

注:このチュートリアルでは、mysqlデータベースサーバーがすでにインストールされていることを前提としています。

焦点に戻って、このエラーの考えられる原因のいくつかは何ですか?

  1. Network failure especially if mysql database server is running on remote host.
  2. No mysql server is running on the mentioned host.
  3. Firewall blocking TCP-IP connection or other related reasons.

以下はそれに対処するための重要なステップです。

1.データベースサーバーがリモートマシン上にある場合は、次のように ping コマンドを使用してクライアントサーバー接続をテストしてみてください。

$ ping server_ip_address

接続が確立されたら、以下の ps コマンドを使用して、アクティブなプロセスの選択に関する情報を pipe およびgrepコマンドとともに表示し、mysqlデーモンがシステムで実行されています。

$ ps -Af | grep mysqld

ここで、オプション:

  1. -A – activates selection of all processes
  2. -f – enables full format listing

前のコマンドからの出力がない場合は、次のようにmysqlサービスを開始します。

$ sudo systemctl start mysql.service
$ sudo systemctl start mariadb.service
OR
# sudo /etc/init.d/mysqld start

mysqlサービスを開始した後、データベースサーバーにアクセスしてみてください。

$ mysql -u username -p -h host_address  

2.それでも同じエラーが発生する場合は、netstatコマンドを実行して、mysqlデーモンがリッスンしているポート(デフォルトは3306)を特定します。

$ netstat -lnp | grep mysql

ここで、オプション:

  1. -l – displays listening ports
  2. -n – enables display of numerical addresses
  3. -p – shows PID and name of the program owning the socket

したがって、 -P オプションを使用して、データベースサーバーへのアクセス中に上記の出力から表示されるポートを指定します。

$ mysql -u username -p -h host_address -P port

3.上記のすべてのコマンドが正常に実行されてもエラーが表示される場合は、mysql構成ファイルを開きます。

$ vi /etc/mysql/my.cnf
OR
$ vi /etc/mysql/mysql.conf.d/mysqld.cnf 

以下の行を探し、文字を使用してコメントアウトします。

bind-address = 127.0.0.1 

ファイルを保存して終了し、その後、次のようにmysqlサービスを再起動します。

$ sudo systemctl start mysql.service
$ sudo systemctl start mariadb.service
OR
# sudo /etc/init.d/mysqld start

ただし、firewallDまたはIptablesを実行している場合は、ファイアウォールがmysqlサーバーへのTCP-IP接続をブロックしていると想定して、ファイアウォールサービスを確認し、mysqlポートを開いてみてください。

それで全部です!上記の他の方法を知っているか、MySQL接続エラーを解決するための提案がありますか?以下のフィードバックフォームからコメントをお送りください。