Hello, mysql
(忘備録)
久しぶりにmysqlに接続しようと、声を掛けると無視されることがある。それどころか[ERROR]
と怒られる。
mysqlの怒り1
だいたい最初はこんな感じでやってくる。
$ mysql -uuser -ppassword
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
はいはい、ファイルを作成すればいいのね、毎回作ってあげます。
$ touch /tmp/mysql.sock
mysqlの怒り2
もう大丈夫かなと、再度mysqlに繋げようとする。
$ mysql -uuser -ppassword
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)
が、こんな感じでまだ怒る。怒り心頭なのか、レベルが19倍になってしまった()。
※この数値の違いについては全く把握および理解できておりません。申し訳ありません。
mysqlの怒り3
もしかして、mysqlsサーバが立っていないのでは?
mysqlサーバを立ち上げようとする。
$ mysql.server restart
ERROR! MySQL server process #72998 is not running!
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/xxxxnoMacBook-Pro.local.pid).
彼女の欲している/usr/local/var/mysql/xxxxnoMacBook-Pro.local.pid
なるものがないから駄々をこねているのかと思い、作ってあげる。
$ touch /usr/local/var/mysql/xxxxnoMacBook-Pro.local.pid
さすがにこれでもう問題ないだろう。。
mysqlの怒り4
$ mysql.server restart
ERROR! MySQL server process #72998 is not running!
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/xxxxnoMacBook-Pro.local.pid).
、、、変わらない。
何がいけないのか、はっきり言ってくれているのか確認するため
/usr/local/var/mysql/xxxxnoMacBook-Pro.local.err
を覗いてみた。
が、さっき行ったはずのERRORログは追記されておらず、前回実行した1ヶ月前ほどのログしか残っていない。。
ようやくわかった。
/usr/local/var/mysql/
配下は彼女が扱えないようになっていたのだ。
大事なのはパーミッション
mysqlがどのユーザでどのグループなんだっけ?Homebrew
でインストールしたから覚えてない。
ええい、めんどくさい。とりあえずこうしてやれ!
$ sudo chmod -R 777 /usr/local/var/mysql/
からの
$ mysql.server start
ERROR! MySQL server PID file could not be found!
Starting MySQL
.. SUCCESS!
PIDファイルが見つからないと怒られはしたものの、無事起動はできた。めでたし。
(PIDファイルは結局なくてもよいのだろうか、、?)
補足
ちなみに、ユーザとグループ一覧を確認するには、それぞれ以下のコマンドで可能なようです。
$ dscl . list /Users
$ dscl . list /Group
色々なサイトを参考にしましたが、提示されている解決策は結構バラバラで、というのもmysqlが起動時エラー発生する理由も様々で、、
例えば、/usr/local/var/mysql/
配下を再帰的に、ファイル所有者とグループをmysql
に変えろだの、自身のユーザ名に変えろだの、色々書かれていました。
あと、既に動いているプロセスがあればそれをkillするのも鉄則ですね。
これと言ったベストプラクティスみたいなものは特に見つかりませんでしたが、どんな事をするにも共通して言えますが、とにかくエラーログを確認するのが1番早いです。
(今回でいえばこれ -> /usr/local/var/mysql/xxxxnoMacBook-Pro.local.err
)
参考サイト
https://qiita.com/carotene4035/items/e00076fe3990b9178cc0
http://d.hatena.ne.jp/ksaito11/20110508/1304756757