【備忘録】【エラー解決】ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

$ mysql -u root -p
今まで、上記コマンドで問題なくMySQLの中に入れていたのですが、
突然以下のようなエラーが返ってきて中に入れなくなってしまい困ったため、
備忘録として残しておきます。

# エラー内容
```
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
```
$ brew services start mysql@5.7でMySQLを起動させるところまでは問題なくできるのに、そのあと$ mysql -u root -pを実行すると上記のエラーが返ってきてしまいました。

色々調べてみると、複数のMySQLを立ち上げていることで、それぞれがソケットの奪い合いをしている、という状況にいるかもしれないことが分かりました。
そのためMySQLの環境を整理する方法を色々と調べてみました。
色々試行錯誤しましたが、
結果以下の順序でコマンドを打つことで解消できました！

```ruby:ターミナル
# 一度消してみる
$ brew uninstall mysql@5.7
【結果】
Uninstalling /usr/local/Cellar/mysql@5.7/5.7.32... (319 files, 234.4MB)
```


```ruby:ターミナル
# datadirも一度消してみる
$ sudo rm -rf /usr/local/var/mysql
# Password:●●●●　←自分のパスワードを入れる

# 消えたかどうか、移動して確認してみる
$ cd /usr/local/var/mysql
【結果】
# ちゃんと無くなってる
cd: no such file or directory: /usr/local/var/mysql
```

```ruby:ターミナル
# 入れ直し
$ brew install mysql@5.7
【結果】
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/mysql%405.7-5.7.32.catalina.bottle.2.tar
Already downloaded: /Users/asamitakaoka/Library/Caches/Homebrew/downloads/287704b593c31a9c9b2db670365d74fcc2231b384bdc945b24892cfb2328e3a5--mysql@5.7-5.7.32.catalina.bottle.2.tar.gz
==> Pouring mysql@5.7-5.7.32.catalina.bottle.2.tar.gz
==> /usr/local/Cellar/mysql@5.7/5.7.32/bin/mysqld --initialize-insecure --user=asamitakaoka -
==> Caveats
We've installed your MySQL database without a root password. To secure it run:
    mysql_secure_installation

MySQL is configured to only allow connections from localhost by default

To connect run:
    mysql -uroot

mysql@5.7 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have mysql@5.7 first in your PATH, run:
  echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc

For compilers to find mysql@5.7 you may need to set:
  export LDFLAGS="-L/usr/local/opt/mysql@5.7/lib"
  export CPPFLAGS="-I/usr/local/opt/mysql@5.7/include"

For pkg-config to find mysql@5.7 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/mysql@5.7/lib/pkgconfig"


To have launchd start mysql@5.7 now and restart at login:
  brew services start mysql@5.7
Or, if you don't want/need a background service you can just run:
  /usr/local/opt/mysql@5.7/bin/mysql.server start
==> Summary
🍺  /usr/local/Cellar/mysql@5.7/5.7.32: 319 files, 234.4MB

~/project 30s
❯ brew services start mysql@5.7
==> Successfully started `mysql@5.7` (label: homebrew.mxcl.mysql@5.7)
```

```ruby:ターミナル
# launchctlに登録
$ brew services start mysql@5.7
【結果】
# OK
Successfully started `mysql@5.7` (label: homebrew.mxcl.mysql@5.7)
```

```ruby:ターミナル
# 動いていることを確認
$ launchctl list | grep mysql
【結果】
# ちゃんと動いています。（もし動いていない場合は一番左のPID欄が - になっています。）
76094   0       homebrew.mxcl.mysql@5.7
```

```ruby:ターミナル
# MySQLに入る
$ mysql -u root -p
【結果】
# 入れました！
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.32 Homebrew

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
```







【参考記事】
https://qiita.com/sigwyg/items/bed1fdfeee3c8b52dec9