All Articles

Sequel ProからMySQL8.0にアクセスできるようにする

まえがき

Sequel ProからMySQL8.0に接続しようとすると以下のようなエラーが出て接続出来ない。

原因としてはMySQL8.0で認証プラグインがcaching_sha2_passwordというものに変更されたため。

どういったものかわからなかったので調べてみると、ドキュメントに次のように書かれていた。

The cachingsha2password and sha256password authentication plugins provide more secure password encryption than the mysqlnativepassword plugin, and cachingsha2password provides better performance than sha256password.

Due to these superior security and performance characteristics of cachingsha2password, it is as of MySQL 8.0 the preferred authentication plugin, and is also the default authentication plugin rather than mysqlnativepassword.

This change affects both the server and the libmysqlclient client library.

(MySQL :: MySQL 8.0 Reference Manual :: 2.11.3 Changes in MySQL 8.0) より

mysql_native_passwordより安全でsha256_passwordより高パフォーマンスとのこと。 どういった仕組みで動くのかなどは今回調べていない。

こちらの記事によると、いくつか解決法があるみたいだが今回は認証プラグインを変更する方法で解決した。

実行環境は次のとおり。

  • MacBook Pro (13-inch, 2018)
  • macOS Mojave 10.14.2
  • MySQL 8.0.14

  • Sequel Pro Nightly (Build 5428 / 37f62834)

ユーザーの認証プラグインを変更する

今回は接続用に別途ユーザー作成した。

mysql> CREATE USER 'choco'@'%' IDENTIFIED BY 'hogehoge';

次の画像のような結果になっていればOK。

作成したユーザーの認証プラグインを変更する。

mysql> ALTER USER 'choco'@'%' IDENTIFIED WITH mysql_native_password BY 'hogehoge';

再度確認すると、pluginの項目が変更されていることがわかる。

これでSequel Proから接続できるようになった。

Reference