はじめに
mysqlのインストールのはじめのほうに、
データディレクトリ初期かスクリプト(mysql_install_db)や
セキュリティ設定スクリプト(mysql_secure_installation)叩きますが
たまーにうっかりこんなエラーを出してしまうことがあります
# mysql_install_db --verbose --user=`mysql` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
そんなときの対処法
対処法
対処法というほどでもないのですが、おおよそ下記が考えられます
- mysql_install_dbのとき
- mysql_secure_installationのとき
- mysqlを起動してない
なのでこれらをそれぞれ解消してあげます
1. --user=mysql
で指定したユーザがいない
ってことなので作ります。
つくりますっていうか、
--user=mysql
で指定したmysqlユーザなんて作るつもりないって場合は
使うユーザに適宜変えるってだけでも良いですしtypoも疑いましょう。
# sudo groupadd mysql # udo useradd -m mysql -g mysql # sudo passwd mysql
2. --user=mysql
で指定したユーザがmysql.sockがあるディレクトリへの権限がない
これもそのまま作ります
# pwd /tmp # ls -l srwxr-xr-x 1 root root 0 6月 25 11:01 2014 mysql.sock # sudo chown mysql:mysql mysql.sock # sudo chmod 777 mysql.sock # ls -l srwxrwxrwx 1 mysql mysql 0 6月 25 11:01 2014 mysql.sock
3. /tmp/mysql.sockファイルがない
これはちょっと怪しいし検証してないですが、一応。。。
# touch /tmp/mysql.sock
必要であれば、上記の権限設定もしましょう。
とはいえ、手動touchしたところでソケットになってない気はしますが
これでいけたと聞いたこともちらほらあったりなかったり。。。
mysqlを起動してない
こちらは対処法を書くまでもないですが
起動してませんよ
とはエラーを出してはくれないのでエラーの際はわかりにくいです
起動方法は環境によって違うので合った方法で起動してから実行してみてください
まとめ
ってことで雑な記事ですが、なにげないメモってことで。