mk-toolブログ

エンジニアと家のことをごちゃごちゃと書いてます

【mysql】mysqlで度重なるエラーで困った話

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

これは「mysql」が起動されていないことが原因で発生するので、

mysql.server start

で起動できるはず。。。


でも、その次に「mysql -uroot」をしても

. ERROR! The server quit without updating PID file (/usr/local/var/mysql/********-no-MacBook-Pro.local.pid).

と出てきた。

この解決はファイルの所有権の変更、もしくはmysqlのプロセスを一度消すことで起動できるようになる。

ファイルの所有権の変更に関しては、

sudo chown -R _mysql:_mysql /usr/local/var/mysql

プロセスの削除に関しては、以下のコマンドで、mysqlが起動されているか確認をする。

ps -ef | grep mysql

このコマンドを実行すると、以下の順序でプロセスの情報が出力されるため、左から2番目のPID番号をメモしておく。
UID,PID,PPID,C,STIME,TTY,TIME,CMD
そして、以下のコマンドを実行。

sudo kill -9 [PID番号]

しかし、私の場合はよく分からないが先の「ps」コマンドで調べたPID番号を入力してもプロセスをkillすることができなかった。
え?と思ってもう一度「sudo kill - p [PID番号]」をやると、 PID番号が変わっていた。
は?と思って、何度も「sudo kill - p [PID番号]」をやるとPID番号がコマンドを実行するたびに2ずつ増えているでありませんか。
そのため、今のPID番号+2のPID番号を指定すれば。。。というおかしな勘でやってみるとプロセスをkillできた。
killができても、「ps -ef | grep mysql」をしてもまだプロセスが残っているがように見えるが、古いプロセスがkillされて
新しいプロセスが生成された、ぐらいに考えてここはこれでいいことにしよう。。。

mysql -uroot

mysqlに入れる。


参考
easyramble.com