Homebrew で update をかけたら強制的に MySQL 8系にアップグレードされたんですが、その後 WP-CLI でデータベースに接続するとこんな感じのエラーが出るようになりました。
PHP Warning:  mysqli_real_connect(): Unexpected server respose while doing caching_sha2 auth: 109 in /.../wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): Unexpected server respose while doing caching_sha2 auth: 109 in /.../wp-includes/wp-db.php on line 1531
PHP Warning:  mysqli_real_connect(): MySQL server has gone away in /.../wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): MySQL server has gone away in /.../wp-includes/wp-db.php on line 1531
PHP Warning:  mysqli_real_connect(): (HY000/2006): MySQL server has gone away in /.../wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): (HY000/2006): MySQL server has gone away in /.../wp-includes/wp-db.php on line 1531
Error: データベース接続確立エラー. これは、`wp-config.php` ファイルのユーザー名とパスワードが正しくないか、あるいは `localhost` のデータベースサーバーに接続できないかのどちらかを意味します。ホスティングサービスのデータベースサーバーがダウンしているかもしれません。
このエラーは MySQL 8.0.4 からデフォルトの認証形式が変更になったことが原因のようです。気になる人はcaching_sha2_passwordでググってみましょう。ここでは備忘録としてその対処法をまとめておきます。

手順

1. ルートユーザーの認証を変更

MySQL でルートユーザーの認証を変更します。
$ mysql -u root
で接続したら、
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
で認証プラグインを変更します。パスワードを設定している場合は BY ''のところでパスワードを入力してください。
mysql> SELECT user,host,plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.01 sec)
pluginの欄がmysql_native_passwordに変更されていることを確認してください。

2. my.cnf の編集

my.cnfを編集します。my.cnf
$ mysql --help | grep my.cnf
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
でどの順番に読み込まれているかが確認できます。Homebrew でインストールした場合は /user/local/etc/my.cnfを編集してください。
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
# 次の行を追加
default_authentication_plugin=mysql_native_password

2. MySQL の再起動

Homebrew でインストールした MySQL は
$ mysql.server stop
で止めようとしても止まりません。止めるにはlaunchctlで登録されているサービスをアンロードする必要があります。
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
これで
$ mysql.server status
 ERROR! MySQL is not running
となっていれば MySQL は停止しています。 起動は
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
です。
$ mysql.server status
 SUCCESS! MySQL running (XXXXX)
となっていることを確かめましょう。

WP-CLI をチェック

適当な WP のディレクトリで
wp plugin status
とかを打ってみて、エラーなく表示されることを確認してください。

参考ページ