環境

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

これで直った.