mysql迁移至8.0时的注意事项(小结)

时间:2022-09-12 18:49:17

密码模式

PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]

mysql8 之后,默认的密码模式改为 caching_sha2_password,新的模式需要新的驱动,至少现在 pdo / navicat 还没给出,所以我们还是得切换成老的 mysql_native_password 模式。

?
1
2
`mysql_native_password`:7.0 以下
`caching_sha2_password`:8.0 以上

1、my.cnf 配置默认的密码模式

?
1
2
[mysqld]
default_authentication_plugin=mysql_native_password

2、更新账号的密码模式

?
1
2
3
4
5
# 创建新的账号
create user 'root'@'%' identified with mysql_native_password by '123456';
 
# 已存在的账号
alter user 'root'@'%' identified with mysql_native_password by '123456';

3、如果你需要授权

?
1
2
3
# 授权也不能兼并创建账号了,只能授权
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

密码复杂度策略

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

密码复杂度验证策略导致的,关闭后设定即可

?
1
2
set global validate_password.policy=0;
set global validate_password.length=6;

默认编码

PDO::__construct(): Server sent charset (255) unknown to the client. Please, report to the developers

设定 mysql 服务的默认编码

?
1
2
3
4
5
6
7
8
9
10
11
# Default Homebrew MySQL server config
[client]
default_character_set=utf8mb4
 
[mysql]
default_character_set=utf8mb4
 
[mysqld]
default_authentication_plugin=mysql_native_password
character_set_server=utf8mb4
collation_server=utf8mb4_general_ci

远程访问

1、my.conf 注释掉本地监听

?
1
2
[mysqld]
#bind_address=127.0.0.1

2、更新账号的 host

?
1
update mysql.user set host='%' where user='root';

到此这篇关于mysql迁移至8.0时的注意事项(小结)的文章就介绍到这了,更多相关mysql迁移至8.0内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://segmentfault.com/a/1190000022629815