#【生じたエラー】
MySQL5.7をインストールして起動しパスワードを設定しようとしたら
Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (38)
そこから泥沼にハマっていく、、、
#【結論】
rm /tmp/mysql.sock
で解決。
#【時系列】
//MySQLをインストール
brew install mysql@5.7
//MySQLを起動させる。
brew services start mysql@5.7
=> Successfully started `mysql@5.7` (label: homebrew.mxcl.mysql@5.7)
※この時は起動できてる。
//パスワードの設定を試みる
mysql_secure_installation
=>Enter password for user root:
Error: Access denied for user ‘root’@‘localhost’ (using password: YES)
(本来パスワードの設定以降するはず。なぜか、パスワードの入力画面なる。試しに、macのrootユーザーのパスを入力するも否定。
過去に設定したMySQLのパスも否定。)
https://mamy1326.hatenablog.com/entry/2017/11/27/231450
こちらの記事から、MySQL5.7以降は、初回にランダムなパスワードが設定されていると知り、記事の通り
/var/log/mysqld.log
を確認するも、そのようなファイルは存在せず。
インストールの際に何らかのエラーが生じた可能性を考慮して、一度アンインストールをかけて、再度インストールを試みる。
その後、再度
mysql_secure_installation
を試みるも、
Enter password for user root:
が表示される。同じように可能性がありそうなパスを入力するも、今度は
Error: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (38)
このような異なるエラーが表示される。
https://qiita.com/YamKenta/items/a33499a7db7946a43381
こちらの記事を参考に
/usr/local/var/mysql の所有権をユーザーに変えてみても不可。
そもそもhomebrewにエラーが生じていて正しくインストールできていないの
か?と考え、
brew doctor
でチェックする。
なにやら大量のエラーが、、、
node.jsのインストールの際に、何らかのエラーが生じたと疑いnode.jsを再インストールするためにアンインストールをかけたところ
パーミッションエラー?
sudo rm -rで該当のファイルを全て削除する。
brew doctor
sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install
brew cleanup を実行
=> Your system is ready to brew
https://qiita.com/wagi0716/items/94193a80502f9d81a9e0
記事の元、再インストール
us@usnoMacBook-Air list-app % brew services start mysql@5.7
==> Successfully started `mysql@5.7` (label: homebrew.mxcl.mysql@5.7)
us@usnoMacBook-Air list-app % mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
Error: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (38)
変化せず。
こちらの記事を参考にmysqlを完全にアンインストール、インストールするも
us@usnoMacBook-Air ~ % brew services start mysql@5.7
Service `mysql@5.7` already started, use `brew services restart mysql@5.7` to restart.
↑ 初回起動時に、「すでに起動してます」的な表記がされます。
何かアンインストール仕切れずに、過去のMySQLが何らかの影響を及ぼしているのか?
/usr/local/var/mysql/usnoMacBook-Air.pid
を作成してみたが同様。
us@usnoMacBook-Air ~ % touch /usr/local/var/mysql/usnoMacBook-Air.pid
us@usnoMacBook-Air ~ % mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
Error: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (38)
us@usnoMacBook-Air ~ % sudo chmod 777 /tmp/mysql.sock
で、全てのユーザーに権限を与えてみて
us@usnoMacBook-Air ~ % mysql.server start
Starting MySQL
... ERROR! The server quit without updating PID file (/usr/local/var/mysql/usnoMacBook-Air.local.pid).
とほほ。
再度アンインストール
us@usnoMacBook-Air ~ % ps aux | grep mysql
us 59108 0.0 0.0 4286716 720 s000 S+ 11:56AM 0:00.00 grep mysql
mysqlのプロセスが完全に切れていること確認
us@usnoMacBook-Air ~ % mysql --version
zsh: command not found: mysql
アンインストール済であることを確認
MySQL5.7ではなく最新版のMySQL8をインストールしてみる。
us@usnoMacBook-Air ~ % mysql --version
mysql Ver 8.0.21 for osx10.15 on x86_64 (Homebrew)
us@usnoMacBook-Air ~ % mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/usnoMacBook-Air.local.pid).
↑ エラー文から
us@usnoMacBook-Air mysql % touch usnoMacBook-Air.local.pid
上記ファイルを作成
us@usnoMacBook-Air mysql % ls
(略)
usnoMacBook-Air.local.pid
作成されていることを確認
us@usnoMacBook-Air mysql % mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/usnoMacBook-Air.local.pid).
上記エラーとなり
再度
us@usnoMacBook-Air mysql % ls
をしたところ
usnoMacBook-Air.local.pid
が消えてる。もはや若干、心霊現象を疑いつつエラーログ を確認したところ
すでにmysqlが起動している、のようなことが書かれている。
プロセスを確認したところ、起動していないようなだが、、、
マックブックの買い替えも視野入れ始めた所
↑ の記事を参考に
rm /tmp/mysql.sock
を試して、再度起動してみたら。
us@usnoMacBook-Air mysql % mysql.server start
Starting MySQL
SUCCESS!
ん?いけた??
us@usnoMacBook-Air mysql % mysql_secure_installation
パスワードの設定もできました。
#【個人的な見解】
おそらく、元々MySQL5.6が入っていたパソコンに、さらにMySQL5.7をインストールしたため(ここでアップデートを行うべきであった。)mysql.sockが5.6の設定のままであった。
本来MySQLを起動時に適切mysql.sockが作成されるが、すでに存在しているため(5.6インストール時の)mysql.sockが作成されず、MySQL5.7とmysql.sockに何らかのズレが生じててエラーとなっていた。
MySQLをアンイストールしてもmysql.sockは消去されないため、再インストールで解決しなかった。
と、個人的には思います。
ハマると疲れますが、無理やりにでも調べるので理解が深まる(ような気がします)。