【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

[2002] MySQLのソケットエラー の原因と対処法

こんにちは。Webシステム課の後藤です。

MySQLのクライアントソフト (mysql, PHP, Perl 等)からMySQLへサーバーへ接続する際、

  • Can't connect to local MySQL server through socket '/tmp/mysql.sock'
  • No such file or directory (trying to connect via unix:///tmp/mysql.sock)

のようなエラーが出て接続できないことがあると思います。

これは、「ソケット /tmp/mysql.sock を通じてローカルのMySQLサーバーに接続することができません」という意味です。
(訳しただけですね)

ソケットとは、Unixドメインソケット(ファイルシステムソケット)のことで、ローカルシステム内での通信を行う際に、
このファイルの入出力を通じてサーバー・クライアント間での通信を行います。
仲介役ですね。

では、このようなエラーが発生する原因と、対処の方法を説明したいと思います。

原因1. MySQLサーバーが起動していない

1
$ ps aux | grep mysqld

でプロセスがあるか確認しましょう。
ないなら、起動しましょう。

1
$ sudo /etc/init.d/mysqld status

原因2. MySQLサーバーで使用しているUnixソケットと、クライアントソフトで使用しているUnixソケットのパスが違う

No such file or directory (trying to connect via unix:///tmp/mysql.sock)

例えば、上記のエラーからクライアントは /tmp/mysql.sock を参照しているのが判りますが、
MySQLサーバーでは /var/lib/mysql/mysql.sock を参照しているという場合です。

この場合の解決法は2つあります。

解決法A. クライアントをあわせる

MySQLのコンフィグファイル、/etc/my.cnf を参照すると

1
2
3
[mysqld]
 
socket=/var/lib/mysql/mysql.sock

という感じでパスが記載されているので、クライアントソフトのソケットを同じパスに設定すればよいです。

解決法B. MySQLをあわせる

/etc/my.cnf を下記の様に書き換えましょう。

1
2
3
4
5
6
7
8
9
[mysqld]
socket=クライアントと同じソケットパス
 
[client]
soket=クライアントと同じソケットパス[shell]
 
書き換えたら、MySQLを再起動してください。
 
[shell]$ sudo /etc/init.d/mysqld restart

原因3. そもそもソケットファイルがない

これも解決方法は2つあります。

解決法A.  MySQLサーバーを再起動すると復元されます。

(※mysql ではなく、サーバーの再起動です。)

1
$ sudo shutdown -r now

解決法B. ソケットファイルを作りましょう

/etc/my.cnf を見てパスを確認したら、

1
2
3
$ touch /パス/mysql.sock
 
$ chown mysql:mysql /パス/mysql.sock

そのパスにソケットを作成して、MySQLの再起動をしましょう。

1
sudo /etc/init.d/mysql restart

以上、MySQL 2002 エラーの原因と対処法でした。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
4
読み込み中...
4 票, 平均: 1.00 / 14
56,403
X facebook はてなブックマーク pocket
【2026.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【2026.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

この記事をかいた人

About the author