使用 Sequal Pro 或 MySQL Workbench 连接时会出现:
Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found
这是由于该客户端不支持 caching_sha2_password 导致。
要想解决问题,只能等它们升级更新。
或者 修改 MySQL 8.x 的 authentication plugin
步骤如下:
修改 my.cnf
通过 mysql —help | grep cnf
找到可能的 cnf 文件,然后一个个去打开。
然后在 [mysqld] setion 中增加(或替换)这一句:
default_authentication_plugin=mysql_native_password
当然了,到这一部,你还是无法连上 MySQL 服务器,还是会报一样的错误。
因为你虽然改了全局配置,但用户配置没改。
所以……
修改用户配置
命令行进入 MySQL 后:
use mysql;
update user set plugin = 'mysql_native_password';
然后可以(选择性地)修改用户密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
之后记得要 restart 一下 mysql service
在 mac 下是:brew services restart mysql
MySQL 升级导致 Laravel 无法连接的问题
报错如下:
Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'
参考 so 上的回答
在 config/database.php 中加入:
[
'connections' => [
'mysql' =>
'modes' => [
'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_ENGINE_SUBSTITUTION',
]
]
]