mysql80を使っているので通常はcaching_sha2_passwordで認証するのですが、pkgでいろいろインストールするマシンはpkgがmysql57(ちょっと前まではmysql56)を前提としているため、mysql80-clientを導入できず、認証モジュールをmysql_native_passwordに変更したい時があります。
いつも変更方法を忘れてしまうため、備忘のためにやり方を書いておきます。
% mysql -u root -p
mysql> select user, host, plugin from mysql.user;
+--------+--------------+-----------------------+
| user | host | plugin |
+--------+--------------+-----------------------+
| root | localhost | caching_sha2_password |
...(snip)...
| foo | % | caching_sha2_password |
| foo | host1.domain | mysql_native_password |
+--------+--------------+-----------------------+
mysql> create user 'foo'@'host2.domain' identified with mysql_native_password by 'new_password';
mysql> select user, host, plugin from mysql.user;
+--------+--------------+-----------------------+
| user | host | plugin |
+--------+--------------+-----------------------+
| root | localhost | caching_sha2_password |
...(snip)...
| foo | % | caching_sha2_password |
| foo | host1.domain | mysql_native_password |
| foo | host2.domain | mysql_native_password |
+--------+--------------+-----------------------+
もし、foo@host2.domainが既に存在している場合にはcreate userの代わりにalter userを使うこと。