【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に入れる。