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

#【生じたエラー】
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.７以降は、初回にランダムなパスワードが設定されていると知り、記事の通り

```
/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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/efe74c03-eb93-9a61-d980-a8bcc6eaea27.png)

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

node.jsのインストールの際に、何らかのエラーが生じたと疑いnode.jsを再インストールするためにアンインストールをかけたところ
![image (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/f70cad83-4d2a-427e-06d0-07264fb04d8c.png)

パーミッションエラー？

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

```
brew doctor
```
で再度チェック。
![image (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/55ebc41a-da35-a2a0-f075-1cf47840d508.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)
```

変化せず。

https://e-joint.jp/639/

こちらの記事を参考に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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547556/e258938b-4b62-5ecb-a6a5-f5f24f6a8411.png)
すでにmysqlが起動している、のようなことが書かれている。
プロセスを確認したところ、起動していないようなだが、、、

マックブックの買い替えも視野入れ始めた所

https://qiita.com/PoohSunny/items/4df890dde4879c2cd29b

↑  の記事を参考に

```
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は消去されないため、再インストールで解決しなかった。

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

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