どうやってMySQLエラーを解決するの:「ローカルのMySQLサーバーへソケット経由で接続できません(111)」
MySQLで「ローカルのMySQLサーバーへのソケット接続が確立できませんでした (111)」というエラーが出る場合、考えられる原因は次のとおりです。
- MySQLサーバーが起動していない:まず、MySQLサーバーが起動していることを確認してください。この問題を解決するには、MySQLサービスを再起動してみてください。
- MySQL サーバが listen しているポート番号にご注意ください。MySQL はデフォルトでポート 3306 を listen していますが、ポート番号が変更されている場合は、MySQL サーバに接続するときに正しいポート番号を指定する必要があります。
- ファイアウォールがMySQLへの接続をブロックしている可能性:システムのファイアウォール設定により、アプリケーションがMySQLサーバへの接続がブロックされている可能性があります。ファイアウォールの設定を確認し、MySQL接続が許可されているかどうかを確認してください。
解決法は次のとおりです。
- MySQLサーバーが起動しているかどうかを確認する:ターミナルまたはコマンドプロンプトに次のコマンドを入力して、MySQLサーバーの状態を確認します。
sudo service mysql status
MySQLサーバが起動していない場合は、以下のコマンドで起動可能
sudo service mysql start
- MySQLサーバーがリッスンするポート番号を確認します。デフォルトでは、MySQLサーバーは3306ポートをリッスンします。MySQLの構成ファイル(通常は/etc/mysql/my.cnf)でport設定を見つけることで、MySQLサーバーがリッスンするポート番号を確認できます。MySQLサーバーに接続するときは、正しいポート番号が指定されていることを確認してください。
- ファイアウォールの設定を確認する。MySQLサーバーが起動しており、リスニングポート番号も正しいのにMySQLサーバーに接続できない場合は、ファイアウォールが接続を妨げている可能性があります。ファイアウォールを停止するか、例外ルールを追加してMySQLの接続を許可してみてください。手順は、オペレーティングシステムと使用しているファイアウォール管理ツールによって異なります。
- MySQLサーバのホストバインドの設定をチェックする:MySQLサーバは特定のIPアドレスからの接続のみ許可する場合があります。MySQLの設定ファイル(通常は/etc/mysql/my.cnf)でbind-addressの設定を確認し、必要なIPアドレスからの接続を許可していることを確認します。
それでも問題が解決しない場合は、より詳しいエラー情報を取得するため MySQL サーバのログファイルを調べる必要があるかもしれません。ログファイルは通常 MySQL のデータディレクトリにあり、「error.log」や「mysql.err」といったファイル名が与えられます。ログファイルを見ることで、接続の問題についての詳細な情報を得ることができます。