MacでMySQLを使っていて、こんなエラーメッセージが表示されて困ったことはありませんか?
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
いきなりこんなメッセージが出ると、「何これ?」「どうしよう?」と焦ってしまいますよね。
でも大丈夫です。このエラーは実はよくあることで、きちんとした手順で解決できます。
この記事では、Mac環境でこのエラーが起きる理由と、具体的な解決方法を初心者の方にもわかりやすく説明します。
このエラーの意味とは?

エラーメッセージをかんたんに説明
このエラーメッセージを日本語で説明すると、こんな意味です:
「MySQLというデータベースソフトに接続しようとしたけど、つながらなかった。理由は、決められた場所にある接続用のファイル(mysql.sock)が見つからないから」
もう少し詳しく
ソケットファイルとは?
- MySQL同士が話をするための「窓口」のようなもの
- 普通は決まった場所に作られる
- このファイルがないと、MySQLにアクセスできない
なぜエラーが起きるの?
- MySQLが起動していない(一番よくある原因)
- ソケットファイルが予想と違う場所にある
- 設定ファイルの内容がまちがっている
- 権限の問題
よくある場面
典型的なパターン:
- Macを再起動した後
- ターミナルで
mysql -u root -p
を実行した時 - 新しくMySQLをインストールした直後
- システムアップデート後
エラーが出る流れ
- コマンド実行:
mysql -u root -p
を入力 - 接続試行:MySQLクライアントがサーバーを探す
- ファイル確認:指定された場所でソケットファイルを探す
- エラー発生:ファイルが見つからないのでエラー表示
まとめ
まずはエラーの仕組みを理解することが大切です。
次は、Macでよくある原因をひとつずつ確認していきましょう。
Macでよくある原因と確認方法
原因1:MySQLサーバーが起動していない
一番よくある原因がこれです。MySQLというソフト自体が動いていないパターンです。
確認方法:
brew services list
このコマンドを実行すると、こんな感じで表示されます:
Name Status User Plist
mysql stopped root /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
「stopped」と表示されていたら、MySQLが止まっています。
原因2:ソケットファイルの場所がちがう
MySQLが動いていても、接続用のファイルが予想と違う場所にあることがあります。
確認方法:
find /usr/local -type s -name mysql.sock 2>/dev/null
または:
find /tmp -name mysql.sock 2>/dev/null
よくある場所:
/tmp/mysql.sock
/usr/local/var/mysql/mysql.sock
/var/run/mysqld/mysqld.sock
原因3:設定ファイルの問題
MySQLの設定ファイル(my.cnf)の内容がまちがっていることがあります。
確認方法:
cat /usr/local/etc/my.cnf
または:
cat /etc/my.cnf
設定例:
[client]
socket = /tmp/mysql.sock
原因4:権限の問題
ファイルやフォルダーの権限設定に問題がある場合があります。
確認方法:
ls -la /tmp/mysql.sock
ls -la /usr/local/var/mysql/
Homebrewについて補足
Homebrewとは?
- Macで使える便利なソフト管理ツール
- MySQLを簡単にインストール・管理できる
- コマンド一つでソフトの開始・停止ができる
よく使うコマンド:
brew services start mysql
:MySQLを開始brew services stop mysql
:MySQLを停止brew services restart mysql
:MySQLを再起動brew services list
:サービス状況を確認
確認の手順
- まずはサービス状況をチェック
brew services list | grep mysql
- ソケットファイルの場所を探す
find /tmp /usr/local/var -name "mysql.sock" 2>/dev/null
- MySQLプロセスの確認
ps aux | grep mysql
まとめ
原因が特定できれば、次はそれぞれの対処法を実行してみましょう。
ほとんどの場合、この中のどれかが原因になっています。
Macでの具体的な解決方法

解決方法1:MySQLを起動する
Homebrewを使っている場合:
# MySQLを起動
brew services start mysql
# 確認
brew services list | grep mysql
直接起動する場合:
# バックグラウンドで起動
mysqld_safe --user=mysql &
# または
sudo /usr/local/mysql/support-files/mysql.server start
解決方法2:ソケットファイルのパスを指定して接続
よくあるパターン1:
mysql -u root -p --socket=/tmp/mysql.sock
よくあるパターン2:
mysql -u root -p --socket=/usr/local/var/mysql/mysql.sock
TCP/IP接続を使う方法:
mysql -u root -p --host=127.0.0.1 --port=3306
解決方法3:設定ファイルを修正
設定ファイルの編集:
# ファイルを開く
nano /usr/local/etc/my.cnf
設定内容の例:
[client]
socket = /tmp/mysql.sock
port = 3306
mysql:
socket = /tmp/mysql.sock port = 3306
mysqld:
socket = /tmp/mysql.sock port = 3306 bind-address = 127.0.0.1
設定変更後の再起動:
brew services restart mysql
解決方法4:権限の修正
権限の確認:
ls -la /tmp/mysql.sock
ls -la /usr/local/var/mysql/
権限の修正:
# MySQLユーザーが所有者になるように変更
sudo chown mysql:mysql /usr/local/var/mysql/
sudo chmod 755 /usr/local/var/mysql/
解決方法5:完全にリセットする
どうしても解決しない場合:
- MySQLを完全停止:
brew services stop mysql
- プロセスの確認と終了:
ps aux | grep mysql sudo killall mysqld
- 再起動:
brew services start mysql
トラブルシューティングのコツ
段階的に試す:
- まずは
brew services start mysql
- だめなら
--socket
オプションで接続 - それでもだめなら設定ファイルを確認
- 最後は完全リセット
ログを確認する:
# エラーログの確認
tail -f /usr/local/var/mysql/*.err
# 一般ログの確認
tail -f /usr/local/var/mysql/*.log
実際の成功例
Homebrew経由でインストールした場合:
# 1. サービス起動
brew services start mysql
# 2. 接続確認
mysql -u root -p --socket=/usr/local/var/mysql/mysql.sock
# 成功!
Welcome to the MySQL monitor...
まとめ
これらの手順で、ほとんどの場合は問題が解決します。次は、MySQLのインストール手順について簡単に確認しておきましょう。
MacにMySQLをインストールする正しい方法
Homebrewを使った安全なインストール
事前準備:
# Homebrewがインストールされているか確認
brew --version
# インストールされていない場合は公式サイトからインストール
MySQLのインストール手順:
- Homebrewを最新にする:
brew update
- MySQLをインストール:
brew install mysql
- MySQLを起動:
brew services start mysql
- 接続テスト:
mysql -u root
セキュリティ設定
必須のセキュリティ設定:
mysql_secure_installation
この設定で以下のことを行います:
- rootパスワードの設定
- 匿名ユーザーの削除
- リモートからのrootアクセス禁止
- テストデータベースの削除
設定の流れ:
Set root password? [Y/n] Y
新しいパスワードを入力
Remove anonymous users? [Y/n] Y
匿名ユーザーを削除
Disallow root login remotely? [Y/n] Y
リモートからのrootログインを禁止
Remove test database? [Y/n] Y
テストデータベースを削除
Reload privilege tables now? [Y/n] Y
権限テーブルを再読み込み
インストール後の確認
正常に動作しているかチェック:
# サービス状況確認
brew services list | grep mysql
# バージョン確認
mysql --version
# 接続テスト
mysql -u root -p
よくあるインストールの問題
問題1:Homebrewがない
# Homebrewをインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
問題2:古いバージョンが残っている
# 古いMySQLを削除
brew uninstall mysql
brew cleanup
# 再インストール
brew install mysql
問題3:権限エラー
# Homebrewの権限修正
sudo chown -R $(whoami) /usr/local/var/homebrew
便利な設定
自動起動の設定:
# Mac起動時に自動でMySQLを開始
brew services start mysql
設定ファイルの場所:
/usr/local/etc/my.cnf
~/.my.cnf
データディレクトリ:
/usr/local/var/mysql/
まとめ
MySQLを正しくインストールしておくことで、多くの接続トラブルを未然に防げます。次に、日常のメンテナンスと予防策を見ていきましょう。
エラーを未然に防ぐ予防策

日常的なチェック習慣
定期的なステータス確認:
# 毎日の確認コマンド
brew services list | grep mysql
週1回のヘルスチェック:
# MySQLの状態確認
mysqladmin -u root -p status
# データベース一覧確認
mysql -u root -p -e "SHOW DATABASES;"
設定ファイルの管理
バックアップの習慣:
# 設定変更前は必ずバックアップ
cp /usr/local/etc/my.cnf /usr/local/etc/my.cnf.backup.$(date +%Y%m%d)
設定ファイルの管理方法:
- 変更前は必ずバックアップ
- 変更内容をメモに残す
- 変更後は必ず再起動して確認
- 問題があればバックアップから復元
ソケットファイルの確認
ソケットパスのメモ: 自分の環境での正しいソケットパスを確認してメモしておきます。
# ソケットファイルの場所を確認
mysql_config --socket
# または
mysqladmin -u root -p variables | grep socket
よくあるパス:
- Homebrew MySQL:
/tmp/mysql.sock
- 公式MySQL:
/var/lib/mysql/mysql.sock
- カスタムインストール:設定による
システムメンテナンス
macOS アップデート後の確認:
# アップデート後は必ずチェック
brew services list
brew services restart mysql
Homebrewのメンテナンス:
# 月1回程度実行
brew update
brew upgrade
brew cleanup
トラブル時の対応準備
緊急時のコマンド集:
# MySQL起動
brew services start mysql
# 強制再起動
brew services stop mysql
sleep 5
brew services start mysql
# ログ確認
tail -n 50 /usr/local/var/mysql/*.err
連絡先リスト:
- 社内のサーバー管理者
- システム会社の連絡先
- 重要なデータベースのバックアップ場所
監視の自動化
簡単な監視スクリプト:
#!/bin/bash
# check_mysql.sh
if brew services list | grep mysql | grep started > /dev/null; then
echo "MySQL is running"
else
echo "MySQL is not running - starting..."
brew services start mysql
fi
定期実行の設定:
# crontabに登録(毎時チェック)
crontab -e
0 * * * * /path/to/check_mysql.sh
バックアップ戦略
データの定期バックアップ:
# 日次バックアップスクリプト例
mysqldump -u root -p --all-databases > backup_$(date +%Y%m%d).sql
設定ファイルのバックアップ:
# 週次でバックアップ
tar -czf mysql_config_backup_$(date +%Y%m%d).tar.gz /usr/local/etc/my.cnf
まとめ
日頃からのメンテナンスと予防策が、トラブルを大幅に減らしてくれます。小さな習慣が大きなトラブルを防いでくれるので、ぜひ取り入れてみてくださいね。
全体のまとめ
「ERROR 2002 (HY000)」は、Mac環境でMySQLを使うときによく出会うエラーですが、正しく対処すれば必ず解決できます。
この記事で学んだこと
- エラーの意味:MySQLサーバーとの接続ができない状態
- 主な原因:サーバー未起動、ソケットファイルの場所違い、設定問題
- 解決方法:段階的なトラブルシューティング手順
- 予防策:日常的なメンテナンスと監視
解決手順の早見表
手順 | コマンド | 説明 |
---|---|---|
1. 状況確認 | brew services list | grep mysql | MySQLの起動状況をチェック |
2. 起動 | brew services start mysql | MySQLを起動 |
3. 接続テスト | mysql -u root -p | 通常の接続を試す |
4. ソケット指定 | mysql -u root -p --socket=/tmp/mysql.sock | ソケットを明示して接続 |
5. 再起動 | brew services restart mysql | 完全に再起動 |
コメント