環境
macOS 14.3.1, MySQL 9.0, Python 3.9.8
起こったこと
Pythonからmysqlclientを呼ぼうとしたら,
MySQLdb.OperationalError: (2059, "Authentication plugin 'mysql_native_password' cannot be loaded ...
などと怒られてしまった.
解決策
MySQLのバージョンが9.0になってから,ネイティブ認証プラグイン(mysql_native_password
)が廃止されたらしい.
つまり,(緊急の場合は)MySQLのバージョンを下げれば良い.
brew uninstall mysql
brew install mysql@8.4
ln -s /opt/homebrew/opt/mysql@8.4/bin/mysql /usr/local/bin/mysql
これで直った.