スポンサーリンク

環境構築「MySQLを2つインストールしてしまって、サーバーが止まらない(動かない)」を削除→再インストールにて解消!

プログラミング
スポンサーリンク

 環境構築を行う中で、時折問題になるのが、「独学で環境構築をしていて、別の学習を始める際に再度環境構築をしてしまった」という内容です。
 特にMySQLのバージョン違いを2つ入れてしまったことで、サーバーが正しく動かなくなってしまうことがよくあります。

ERROR! The server quit without updating PID file

 MySQLが複数入っていた場合、MySQLを止めよう、または動かそうとした時に以下のようなエラーが発生します。

$ mysql.server stop
Shutting down MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/hoge.local.pid). 

もしくは

$ mysql.server start
Starting MySQL
... ERROR! The server quit without updating PID file (/usr/local/var/mysql/hoge.local.pid).

両方とも、PIDファイルに関係するエラーですね。

解消法 mysqlフォルダを削除→再インストール

# mysql設定ファイルを全て削除
$ sudo rm -rf /usr/local/var/mysql #ディレクトリの順番は要確認!

# mysqlをアンインストール
$ brew uninstall mysql@8.0

# mysqlを再度インストール
$ brew install mysql@8.0

# mysqlのパスを通す
$ echo 'export PATH="/usr/local/opt/mysql@8.0/bin:$PATH"' >> ~/.bash_profile
または
$ echo 'export PATH="/usr/local/opt/mysql@8.0/bin:$PATH"' >> ~/.zshrc

# 設定を読み込む
$ source ~/.bash_profile
または
$ source ~/.zshrc

それでも解消しなければ…、関係箇所全削除!

 これをするのは面倒ですので、最終手段ですね。

関連ファイルの全削除

$ sudo rm -rf ~/Library/PreferencePanes/My 
$ sudo rm -rf /usr/local/mysql
$ sudo rm -rf /Library/StartupItems/MySQLCOM
$ sudo rm -rf /Library/Receipts/mysql 
$ sudo rm /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
$ sudo rm -rf /usr/local/Cellar/mysql*
$ sudo rm -rf /usr/local/bin/mysql 
$ sudo rm -rf /usr/local/var/mysql 
$ sudo rm -rf /usr/local/etc/my.cnf
$ sudo rm -rf /usr/local/share/mysql 
$ sudo rm -rf /usr/local/opt/mysql*
$ sudo rm -rf /etc/my.cnf

プロセスのkill

$ ps aux | grep mysql
hoge           50131   2.4  0.0  4286732    736 s001  S+   10:23AM   0:00.01 grep mysql
hoge             777   0.0  0.0  4936916   1032   ??  S     6 221    0:27.00 /usr/local/opt/mysql@8.0/bin/mysqld --basedir=/usr/local/opt/mysql@8.0 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/opt/mysql@8.0/lib/plugin --log-error=hoge.err --pid-file=hoge.pid
hoge             657   0.0  0.0  4308704      4   ??  S     6 221    0:00.08 /bin/sh /usr/local/opt/mysql@8.0/bin/mysqld_safe --datadir=/usr/local/var/mysql

 プロセスを確認すると、PIDファイルを参照しているプロセスがあります。
 今回で言うと、777になりますね。
 777を消したいものの、プロセスが走っていて消せない可能性がありますので、今回は、その一つ下、675をkillします。

kill -9 675

再インストール

$ brew install mysql@8.0

 インストールし終わったら、pathを通します。

$ echo 'export PATH="/usr/local/opt/mysql@8.0/bin:$PATH"' >> ~/.bash_profile

$ source ~/.bash_profile

MySQLスタート

$ mysql.server start    
Starting MySQL
 SUCCESS! 

 これにて、成功です!

コメント