環境構築を行う中で、時折問題になるのが、「独学で環境構築をしていて、別の学習を始める際に再度環境構築をしてしまった」という内容です。
特に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!
これにて、成功です!
コメント