👾
Mac の Homebrew で mysql-client@5.7 が入らなくなった
はじめに
今日 Mac のローカルで古い mysql に接続しようとしたら次のようなエラーが発生しました。
% mysql -h 127.0.0.1 -u hoge -p
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2059 (HY000): Authentication plugin 'mysql_native_password' cannot be loaded: dlopen(/opt/homebrew/Cellar/mysql-client/9.0.1/lib/plugin/mysql_native_password.so, 0x0002): tried: '/opt/homebrew/Cellar/mysql-client/9.0.1/lib/plugin/mysql_native_password.so' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/mysql-client/9.0.1/lib/plugin/mysql_native_password.so' (no such file), '/opt/homebrew/Cellar/mysql-client/9.0.1/lib/plugin/mysql_native_password.so' (no such file)
あれ? mysql-client って 9 入れてたんだっけ?となりましたが、なんかの拍子に最新になってしまっていました。
% mysql --version
mysql Ver 9.0.1 for macos14.4 on arm64 (Homebrew)
mysql-client@5.7 を入れてみようと試みる
まず削除します。
% brew uninstall mysql-client
次にインストールを試します。
% brew install mysql-client@5.7
Error: mysql-client@5.7 has been disabled because it is not supported upstream! It will be disabled on 2024-08-01.
なんと! 2024-08-01 までだったとは 😢
とりあえず繋がればいいので 8.0 を試してみます。
mysql-client@8.0 を入れてみようと試みる
まず削除します。
% brew uninstall mysql-client
続いて 8.0 をインストールします。
% brew install mysql-client@8.0
パスを通します。
% echo 'export PATH="/opt/homebrew/opt/mysql-client@8.0/bin:$PATH"' >> ~/.zshrc
% source ~/.zshrc
バージョンを確認します、
% mysql --version
mysql Ver 8.0.39 for macos14.4 on arm64 (Homebrew)
8.0 が入りました!
接続もできました!
とりあえずよしとします。
そもそもなんで接続できなかったかのか?
「Features Removed in MySQL 9.0」に
mysql_native_password plugin.
The mysql_native_password authentication plugin, deprecated in MySQL 8.0,
has been removed. The server now rejects mysql_native authentication
requests from older client programs which do not have CLIENT_PLUGIN_AUTH
capability.
mysql_native_password プラグイン。
MySQL 8.0 で廃止された mysql_native_password 認証プラグインは削除されました。
サーバは CLIENT_PLUGIN_AUTH 機能を持たない古いクライアントプログラムからの mysql_native
認証要求を拒否するようになりました。
と書いてありました。
参考ページ
Discussion