1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【備忘録 エラー】MySQL5.7をインストールして起動しようとしたら Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (38)

Last updated at Posted at 2020-08-30

#【生じたエラー】
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

でチェックする。

image.png

なにやら大量のエラーが、、、

node.jsのインストールの際に、何らかのエラーが生じたと疑いnode.jsを再インストールするためにアンインストールをかけたところ
image (1).png

パーミッションエラー?

sudo rm -rで該当のファイルを全て削除する。

brew doctor

で再度チェック。
image (2).png
指示の元

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

が消えてる。もはや若干、心霊現象を疑いつつエラーログ を確認したところ
image (3).png
すでに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は消去されないため、再インストールで解決しなかった。

と、個人的には思います。

ハマると疲れますが、無理やりにでも調べるので理解が深まる(ような気がします)。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?