初心者がMacのローカル環境にMySQL 8.0をインストールしてSequel PROで接続したかった奮闘記。

# はじめに
会社でMySQLを使用する業務を行うことになりました。
ProgateのSQLコースを修了しただけの低レベルの僕に合わせて、
上司がMySQLの基礎を固めるための簡単なトレーニングメニューを組んで下さいました。
簡単そうだからすぐに終わらせようと思っていたのに、最初の段階でちょっと躓いて、一週間以上かかってしまいました。
今後同じ道を辿る初心者を生み出さないために、注意点をまとめました。

Google先生が教えてくれる既存の資料は、Homebrewを使用する方法だとか、
MySQL5.6 や 5.7 のやり方のものがほとんどです。
この記事では、現時点での最新版 MySQL8.0 でのやり方を記録しています。

## 記事のターゲット
下記のようなキーワードでGoogle検索している方に、ぜひこの記事を見つけてほしいです。

「MySQL 接続できない」
「`the server quit without updating pid file`」
「`No such file or directory`」
「`Access denided for user`」
「`server command not found`」
「`Authentication plugin 'caching_sha2_password' cannot be loaded`」

# 今回の目的
上司から頂いたトレーニングメニューは以下です。

参考資料：[MySQL5.6リファレンスマニュアル(日本語版)](https://dev.mysql.com/doc/refman/5.6/ja/tutorial.html) をもとに、
1. ローカル環境もしくは仮想環境を用意してMySQLをインストールする。
2. 起動したMySQLへクライアントツール（なんでもよし）で接続する。
3. リファレンスマニュアル実施（3.3 データベースの作成と使用 ）
4. リファレンスマニュアル実施（3.6 一般的なクエリーの例 )

上記ミッションのうち、 1~2 を遂行する際に少し躓いたため、これを遂行する際の注意点をここにまとめています。

※ MySQLはローカル環境にインストールします。
※ MySQLは最新版の8.0をインストールします。
※ MySQL8.0の資料は英語表記のため、唯一日本語資料が用意されているMySQL5.6のマニュアルを参考に進めております。

## 結論
申し訳有りません。
Sequel PROで接続できた段階で、舞い上がってこんな記事を作成してしまいましたが、
Sequel PRO上で操作しようとすると必ずエラーがでて進まなくなってしまいました。
そこで再度調べた所、認証方式がどうこうではなく、そもそもSequel PROはMySQL8.0に非対応とのことで、**どうあがこうと無理**という結論に達しました。

僕がこの結論にたどり着くまでの苦労の軌跡を残すため、この記事は削除せずに置いておくことにします。
どうか、おなじく無駄な時間を過ごす初心者が１人でも減ってくれますように…。

おわり。

## ~~【要点】 クライアントツールの選定~~
~~さて、今回の重要ポイントを先に説明させていただきます。
今回、クライアントツールはなんでもよいというミッションだったので、評判の良い**Sequel PRO**を選択しているのですが、ここが最大のワナなのでした。
なんとSequelPROは、MySQLが採用している最新のログイン認証方式(caching_sha2_password)に非対応だったのです。
以下の記録は、そのことを頭に入れてから読み進めてください。~~

## ~~ローカル環境にMySQLをインストールする。~~

**~~注意点：~~**
~~接続に躓いてGoogle検索してみると、Homebrewを使用するインストール方法が沢山ヒットしますが、それは大抵の場合 MySQL5.6 や 5.7 向けの方法かと思われます。
この記事では、公式サイトからダウンロードできる MySQL8.0 用のディスクイメージ(.dmgファイル)を使用してインストールします。~~

1. ~~MySQL公式ページの DOWNLOADSメニュー > Communityタブ > MySQL Community Server(GPL) から、DMG Archive をダウンロードして、実行する。~~

2. ~~インストーラで`Use Strong Password Encryption`か`Use Legacy Password Encryption`を選ぶ画面になったら**`Use Legacy Password Encryption`を選択する。**
![mac-installer-configuration-password-type.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365927/9331a56f-53bf-3773-340a-751649399599.png)~~
3. ~~あとは通常通りインストールを完了させる。
(Google検索してみると、このあとTerminalで`mysql.server start`をさせるような記事が多い。
しかし、今回の方法でインストールしている場合、システム環境設定からサーバーの起動が可能。
さらに、基本は自動でサーバーを起動してくれているため、上記の操作は不要である。)~~
4. ~~Terminalで`mysql -v`と入力してみた際、コマンドが`mysql: command not found`となる時は、ターミナルで下記を実行。~~

```bash
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bash_profile
```
~~試しにTerminalで`mysql -u root -p`と入力して、パスワードを入力すると、問題なくMySQLが実行できると思われる。
(MySQL8.0以前はrootユーザのパスワードを設定するかどうかは任意だったようだけど、今回の方法でインストールしている場合、パスワード設定は必須なので、`-p`というオプションを使用しないでログインすることは不可能です。)~~

~~以上。~~

# ~~既に失敗してしまった方へ。~~
~~上記のような手順を踏まず、既にドツボにハマってしまった方。
まだやり直せる状況であれば、MySQLのクリーンインストールを行う事が一番安全だと思います。~~

~~Google検索すると、MySQLのアンインストールをする際に、Terminalから関連ファイルの削除を行う情報が多くヒットします。
しかし、今回の方法でインストールしている場合、システム環境設定から完全にアンインストールを行うことが可能です。Terminalを使用してアンインストールをする必要は恐らくありません。
(間違っていたらコメントください。)
システム環境設定からアンインストールをする際に、`Also uninstall this preference pane, and launchd support files.`にチェックをして下さい。~~

~~既にMySQLを運用してしまっている等で、クリーンインストールをすることが出来ない場合、ユーザごとに認証方式を変更する方法もあるようです。
参考:[MySQL8.0 認証方式を変更する(Laravel5)](https://qiita.com/ucan-lab/items/3ae911b7e13287a5b917)
僕はこれを行った際、rootユーザの認証方式を変更してしまい、再度MySQLに接続できなくなる事象が発生しているので、
認証方式を変更する場合は、rootユーザではなく、新規作成されたユーザの設定を変更したほうが安全だと思います。~~

~~おわり。~~