MySQLエラー「Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’」

mysql
MySQLエラー「Can't connect to local MySQL server through socket '/tmp/mysql.sock'」

今回はMySQLサーバーに接続する際に「Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’」のようなエラーが発生したので解決方法を残していきたいと思います。

使用環境

  • mysql ver 8.3.0
  • mac OS Sonoma 14.3

エラー内容

Homebrewでmysqlをインストール後、`$ mysql -u root -p`を実行すると下記エラーが吐かれました。

Can't connect to local MySQL server through socket '/tmp/mysql.sock'(28)

考えられる原因

MySQLサーバーが起動していないかクラッシュしている

MySQLサーバーが正しく起動しているか確認してください。mysql.server statusコマンドを使用すると状態を確認できます。

MySQLソケットの場所が正しくないか存在しない

MySQLが /tmp/mysql.sock ファイルを期待しているが、実際にはその場所にソケットが存在しない可能性があります。MySQLが他の場所でソケットを探しているかもしれません。MySQLの設定ファイル(通常は my.cnf または my.ini)でソケットの場所を確認してください。

MySQLの起動時にエラーが発生している

MySQLのログファイルにエラーが記録されている可能性があります。MySQLのログの場所は設定により異なりますが、通常は /var/log/mysql/error.log/usr/local/var/mysql/<your-computer-name>.err にあります。

MySQLクライアントが正しく設定されていない

MySQLクライアントが正しいソケットを参照していることを確認してください。my.cnf(または my.ini)の socket パラメータが正しいか確認してください。

解決方法

mysql.sockファイルの作成

sudo touch /tmp/mysql.sock

mysql.sockファイルを作成したら、MySQLを起動し直します。

sudo mysql.server restart

ERROR! MySQL server PID file could not be found!
Starting MySQL
... ERROR! The server quit without updating PID file (/usr/local/var/mysql/*****.local.pid).

MySQLサーバーのPIDファイルが見つかりません!と新たなエラーが発生したので下記コードを実行します。

sudo touch /usr/local/var/mysql/*****.local.pid

******は下記コマンドを実行し、ホスト名を確認の上、置き換えてください。

uname -n

PIDファイルを作成後、再度確認をします。

sudo mysql.server restart

Shutting down MySQL
... SUCCESS!
Starting MySQL
.. SUCCESS!

これでエラーの解消をすることができました。

それでも解決できない場合

macOS Ventura 13.6.4からmac OS Sonoma 14.3へバージョンアップすることでエラーを解消することができました。

\ シェアしてね! /