MySQL: Sequel ProでMySQLに接続できない時

mysql, sequelpro, サーバ, データベース

    みなさん、こんにちは。
    Sequel Proを使用してmysqlをいじっているのですが、ひさしぶりに初めから環境構築してみたら、どうやってやったか全然覚えていなくてアタフタしてしまったPQTomです。
    久しぶりに前やったことをやってみよう。と思ったけど、、、、どうやってやったっけ?ってなることありません?
    見返してみて、よく過去の自分こんなことできたなって思う時。
    先日、僕の使っているデータベース管理のためのアプリケーション、Sequel Proを友人も使いたい!ということだったので、一から教えてあげようってことになりました。
    しかし、、、
    あれ?データベースに接続できない。。。
    初めどうやってやったっけ。。。。
    という、なんともなさけないことが起きてしまいました。
    となりで僕の作業を見ていた友人に呆れたような顔をされ。。。。しんどい笑
    なぜだ。どうしてこうなった。
    今回は、このような失敗を繰り返さないためにSequel Proを使用し、ローカルのデータベースに接続した話について書いていこうと思います。
    これまた久しぶりのtech投稿です。

    環境

    使用した環境はmacOSです。
    その他のOSについては、、、すいません。
    Sequel Proを使用し、ローカル環境MySQLデータベースサーバに接続します。

    Macbook Air
    Sequel Pro
    MySQL(ローカル)

    以上。

    MySQLのインストール

    まずデータベースを準備します。
    無難にデータベースはMySQLを使用していきます。
    Macの良さとしてターミナルで何でもできるとこだと思ってます。
    ので、ターミナルでちゃちゃっとインストールしていきましょう。
    MySQLのインストールに使用するパッケージマネージャーはHomebrewでいきます。

    まずHomebrewの準備。

     https://brew.sh/index_ja

    上記のとっからhomebrewをちゃちゃっとインストールしちゃってくだせー。
    終わったらMySQLのインストールです。
    ターミナルで

    brew install mysql

    以上。簡単ですね。
    もし、動かんかったら

    brew update

    でhomebrewを最新の状態にしてから試してみてください。

    Sequel Proのインストール

    さー次はSequel Proのインストールです。

    brew cask install sequel-pro

    これでインストール完了。
    起動しよう!

    こんな感じの画面ですね。

    Sequel ProでMySQLサーバに接続

    ここからが、問題でした。
    MySQLを準備してSequel Proも用意できた。
    あとは繋ぐだけ。
    必要な情報は名前、ホスト、ユーザ名、パスワード。
    名前は何でもいいです。適当に”local”とでもしておきましょう。
    ホストはローカル環境なので127.0.0.1
    ユーザ名は管理者root
    パスワードは設定していないのでなし。
    まとめると

    名前:local
    ホスト:127.0.0.1
    ユーザ名:root
    パスワード:

    ということになります。
    よし!実行!と思ったら、

    MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found

    という謎のエラーが。
    前やった時はこんなんなかったぞ!
    ということで、いろいろ調べた結果、
    どうやら、MySQL8から認証方式が変わったらしい。
    もともとmysql_native_passwordというものからcaching_sha2_passwordってやつになったみたいで。
    まだ対応していないアプリを使用して接続しようとすると弾かれるみたいです。
    なのでここでMySQL自体の認証を古いやつに戻して、現在のSequel Proでも接続できるように直します。
    まずターミナルからMySQLに入ります。

    mysql -u root

    そしたら認証を戻していきます。

    ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY PASSWORD;

    これで前のMySQLの認証方式に戻りパスワードを設定しました。
    今回、パスワードはPASSWORDとなっていますが、そこは勝手に好きなものにしちゃってください。
    MySQLサーバを抜けて、一応ここでサーバを再起動しときます。

    mysql.server restart

    よし、Sequel Proに戻りましょう。
    前入力した情報にさっき設定したパスワードを加えます。
    まとめると

    名前:local
    ホスト:127.0.0.1
    ユーザ名:root
    パスワード:PASSWORD

    ということになります。
    すると、

    無事接続が完了しました。

    まとめ

    今回、Sequel Proを使用してローカルのMySQLサーバに接続しました。
    特に大したことなかったのですが、一回つまずくとなかなか時間がかかりましたね。
    解決策探すのに。
    みなさんも同じ問題に当たった時には参考にしてみてください。
    かなり長くなっちゃった。。。笑
    ではこのへんで。

    でわでわ。

    参考資料

    [1] Mac OSX High Sierra開発環境セットアップのメモ(4) MySQL8.0, https://chaika.hatenablog.com/entry/2018/07/14/090000
    [2] Sequel Pro and MySQL connection failed, https://stackoverflow.com/questions/51179516/sequel-pro-and-mysql-connection-failed