0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ローカルのMySQLクライアントからAmazon Auroraに繋げなくなった話

Posted at

こんにちは、サーバエンジニアの池脇です。
今回はローカルのMySQLクライアントからAmazon Auroraにアクセスしようとした際に繋げなくなった話とその際の解決方法について共有します。

なにもしてないのにこわれました

ある日、普段通りの業務でサーバ上のデータを見にいこうとすると

ERROR 2059 (HY000): Authentication plugin 'mysql_native_password' cannot be loaded: dlopen(/opt/homebrew/Cellar/mysql/9.2.0/lib/plugin/mysql_native_password.so, 0x0002): tried: '/opt/homebrew/Cellar/mysql/9.2.0/lib/plugin/mysql_native_password.so' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/mysql/9.2.0/lib/plugin/mysql_native_password.so' (no such file), '/opt/homebrew/Cellar/mysql/9.2.0/lib/plugin/mysql_native_password.so' (no such file)

このようなエラーが発生しました。
エラーを詳しく見てみるとMySQLのバージョンが9.2.0になっている模様……

よくよく考えると直近でbrew updateを行っていたため、HomebrewでインストールしているMySQLのバージョンが最新になっているのでは??

$ mysql --version
mysql  Ver 9.2.0 for macos13.7 on arm64 (Homebrew)

犯人はお前かー!!
ということでHomebrewのアップデートを安易に行った自分のせいでした。

mysql_native_passwordはユーザパスワードのハッシュ化にSHA-1を用いており、MySQL5.7まではデフォルトの認証プラグインでした。
MySQL8.0からはハッシュ化により安全なSHA-256を用いたcaching_sha2_password認証プラグインが追加され、デフォルトとして利用されています。
そのためmysql_native_passwordはMySQL8.1で非推奨、MySQL8.4でデフォルト無効となっており、それが原因で上記エラーが発生しているようです。
詳しくは以下をご覧ください。
MySQL8.4での mysql_native_password 認証プラグインの扱い

対応方法を考える

考えるといってもすでに動いているサービスのアップデートは難しい1ためローカルのMySQLクライアントのバージョンを下げる必要があります。
ということでまずはHomebrewのMySQLのページを確認してみましょう。

スクリーンショット 2025-02-21 16.12.26.png

その他のバージョンの中に8.0系があったのでこちらをインストールしましょう。

$ brew install mysql@8.0

今後のことを考えて最新のバージョンと8.0系とを切り替えられるように対応します。
切り替えのコマンドは以下です。

$ brew unlink mysql && brew link --force mysql@8.0
Unlinking /opt/homebrew/Cellar/mysql/9.2.0... 99 symlinks removed.
Linking /opt/homebrew/Cellar/mysql@8.0/8.0.41... 99 symlinks created.

切り替え後にバージョンを確認してみます。

$ mysql --version
mysql  Ver 8.0.41 for macos13.7 on arm64 (Homebrew)

問題なく切り替えられました!
その後アクセスの確認も行いましたが、特に問題なく今まで通り作業を進められました。

まとめ

今回はMySQLクライアントのバージョンアップによってサーバ上のDBにアクセスできなくなった際の解決方法についてご紹介しました。
バージョンアップ周りの問題はよく発生するものであり、対応についても都度考える必要があるため、エラーの内容から対応方針を決めて対応するようにしましょう。

参考

  1. そもそもAmazon Auroraが2025年2月時点でMySQL8.0系までしか対応していない

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?