macのローカル環境のMySQLが突然起動しなくなった話

macのローカル環境のMySQLが突然起動しなくなった話

macのローカル環境のMySQLが突然起動しなくなり、かなり手こずったのでここにまとめておこうと思います。

発生したエラー達

まずは、発生した問題を一覧にまとめると、、

  • エラー1 MySQLコマンドが「comand not found」になってしまった
  • エラー2 「sudo mysql.server restart」とすると「PID file could not be found!」となってしまった
  • エラー3 Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (38)」となってしまった

一つづつ私が解決した方法を説明していきます。

Advertisement

解決方法

エラー1 MySQLコマンドが「comand not found」に!

私の場合は以下のようなエラーがMySQLを起動しようとすると発生してしまった為、一度MySQLをアンインストールしてもう一度再インストールことにしました。

 

ERROR! The server quit without updating PID file (/usr/local/var/mysql/[マシン名].local.pid).

 

その為、再インストールしたのですが今度は次のようなエラーが発生!

 

$ mysql -versions
-bash: mysql: command not found

 

エラーによるとシンボリックリンクがどうやら作成されていないようなのでシンボリックリンクを作成することにしました。実行結果が以下のコードです。

 

$ brew link mysql@5.7
Warning: mysql@5.7 is keg-only and must be linked with --force

 

今度は「–force」というオプションを後ろにつけないとシンボリックリンクを作らないよと怒られました。結構これに気付くのに時間がかかってしまいましたね…。なので今度は次のようなコマンドを打つと…

 

$ brew link mysql@5.7 --force
Linking /usr/local/Cellar/mysql@5.7/5.7.26... 87 symlinks created

If you need to have this software first in your PATH instead consider running:
  echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.bash_profile

 

もし、インストールするのが初めてだったらPATHを通してね!と言っているので、「export PATH=”/usr/local/opt/mysql@5.7/bin:$PATH”」をPATHに追加してあげましょう!今度はうまくいきました!やったー!これでやっとmsyglコマンドが使えるようになって一つ目のエラーが解決しましたね。

Advertisement

エラー2 「sudo mysql.server restart」とすると「PID file could not be found!」となってしまう問題

さあ、やっとmysqlコマンドが使えるようになったので今度はmysqlを起動してみましょう!以下のコマンドで実際にmysqlを起動してみました。

 

$ sudo mysql.server start
 ERROR! MySQL server PID file could not be found!
Starting MySQL
.Logging to '/usr/local/var/mysql/[マシン名].local.err'.
 ERROR! The server quit without updating PID file (/usr/local/var/mysql/[マシン名].local.pid).

 

なんとまたまたエラー!今度は「PID file could not be found!」つまりPIDファイルが存在しないぞ!と怒られました。なのでPIDファイルを作ってあげることにします。以下のコマンドで実際のディレクトリに移動してPIDファイルを作成してあげます。

私の環境では実際のディレクトリに移動してtouchコマンドで作成してあげないとファイルが作成されませんでした。実際に作成後lsコマンドできちんと作成されているか確認してみてくださいね

 

$ cd /usr/local/var/mysql/
$ touch [マシン名].local.pid
$ ls
[マシン名].local.pid ←ちゃんと作成されているか確認!

 

これでPIDファイルは作成できたので「mysql」コマンドを実行してみましょう

 

$ mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)

 

すると、また新しいエラーが…。次のエラー解決法に移動しましょう。

Advertisement

エラー3 Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (38)」となってしまった

さて、また新しいエラーが発生しました。’/tmp/mysql.sock’に繋げれないよ!と言っています。私の場合は以下のコマンドでもう一度socketを作成してあげることで解決しました。

 

$ sudo touch /tmp/mysql.sock

 

では、サイドmysqlサーバーを立ち上げましょう!

 

$ sudo mysql.server restart
 ERROR! MySQL server PID file could not be found!
Starting MySQL
.Logging to '/usr/local/var/mysql/[マシン名].local.err'.
 ERROR! The server quit without updating PID file (/usr/local/var/mysql/[マシン名].local.pid).

inagakiyuunarinoMacBook-puro-6:~ yuya-inagaki$ mysql.server start
Starting MySQL
. SUCCESS!

 

それでもダメだった場合、、権限周りの問題かも?以下のコマンドを実行してみましょう。

 

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

 

最初、restartとしてしまったところPIDファイルがないと怒られてしまいました。今回の場合はstartで大丈夫なことを忘れていましたので、もう一度startで実行するとやっとうまくいきました!長かった〜〜

Qulii

CTA-IMAGE 中高生向け知的体験プラットホームを公開中!

MySQLカテゴリの最新記事