Help us understand the problem. What is going on with this article?

【MySQL】pid not foundもしくはpermission deniedの対応方法

まいえすきゅーえるううううううううう

ぐぬぬぬぬぬお前のせいで今日1日を費やしたぞ。

ついさっきようやく解決したので備忘録を。お風呂に入りたいので早めに書きます。

原因

MYSQL@5.7をインストールしてsever.start後、MYSQL@5.6をインストールして動かそうとすると、MYSQL@5.7で使おうとしていたファイルを参照するらしい。

残っているファイルを消すことが必要になる。

経緯

ことの発端はどこかのタイミングでbrew updateをしてしまったらしく、MYSQL@8系のバージョンが入ってしまっていた。

それにより、railsでアプリケーションを立ち上げようとした時にエラーが起きてしまったので、ダウングレードしたり様々なことをやった結果、「PIDファイルがないエラー」と「権限がないエラー」の無限ループにはまり込んでしまった

現象

MYSQLサーバーを起動させようとするとエラー

$ mysql.server start

/usr/local/Cellar/mysql@5.6/5.6.43/bin/mysqld_safe: line 138: /usr/local/var/mysql/username.local.err: Permission denied
 ERROR! The server quit without updating PID file (/usr/local/var/mysql/username.local.pid).

どうやら一つは権限がない、もう一つはPIDファイルがないらしい。

とりあえず権限を付与。

$ sudo chmod 777 /usr/local/var/mysql

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

権限問題は消えた。

PIDファイルを作るディレクトリに移動して、touchコマンドでpidファイルを作成。

$ cd /usr/local/var/mysql

$ sudo touch prkrsignMacBookPro.local.pid

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

これでもダメ。
/usr/local/var/mysqlディレクトリのファイルリストを表示したが、pidファイルがなかった。

どうやら作られても消えてしまう?らしい。

そこでこの記事を発見。

https://qiita.com/furafura_nau/items/7d8f5370899df125d459

一度でも5.7を起動してしまうと、同じデータを使って5.6を起動すると次のようなエラーが出るようになります。

Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/ogin.local.pid).
mysqld等は動いていなかったので権限周りと思われますが、うまく解決できませんでした。
(バージョンによってディレクトリ構成が違っていたので、権限以外にも何か影響しているのかもしれません)

とのこと。

記事を参考に、

$ sudo rm -rf /usr/local/mysql
$ sudo rm -rf /Library/StartupItems/MYSQL
$ sudo rm -rf /Library/PreferencePanes/MySQL.prefPane
$ sudo rm -rf /Library/Receipts/mysql-.pkg
$ 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*

<!--最後にver5.6をインストール。-->
<!--元々MYSQL@5.6が入っていて、アンインストールせずにそのままインストールしちゃいました。-->
$ brew install mysql@5.6

忘れずにPATHを通そう。

$ echo 'export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
$ /usr/local/opt/mysql@5.6/bin/mysql.server start

Starting MySQL
. SUCCESS! 

これはドヤ顔。エラー解決に8時間かけたのにたまらずドヤ顔

記事を参考にMYSQLに入れることも確認しときます。いけました。

$ /usr/local/opt/mysql@5.6/bin/mysql -u root

とりあえず所感として。

MYSQLでエラーが出たら、原因はほぼ二つ。

「PIDがなくなっている」か「権限がない」。

touchを使ってPIDファイルを作成、もしくはchmodを使って権限の再設定をまず試してみるのがいいと思います。

それで改善しないなら潔く再インストールが多分手っ取り早いです。

再インストールの場合は上記のようにMYSQLが持ってるファイルを全部消して、MYSQL@5.6をインストール、パスの設定がいいんじゃないかなと思います。

@8だったり@5.7だったり、なかなかバージョン関係でいざこざ起きやすいようなので、初めに環境構築した時のバージョンを再インストールしなおすのがいいんじゃないかなと思います。

AK4747471
未経験からweb系企業に転職することができましたが、気合いでアプリ作るのは変わっていません。
https://ak474747.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした