MySQL 8.x 的问题解决过程

使用 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',
            ]
        ]
]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容