密码模式
PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]
mysql8 之后,默认的密码模式改为 caching_sha2_password,新的模式需要新的驱动,至少现在 pdo / navicat 还没给出,所以我们还是得切换成老的 mysql_native_password 模式。

mysql_native_password:7.0 以下
caching_sha2_password:8.0 以上
1、my.cnf 配置默认的密码模式

[mysqld]
default_authentication_plugin=mysql_native_password
2、更新账号的密码模式

创建新的账号

create user 'root'@'%' identified with mysql_native_password by '123456';

已存在的账号

alter user 'root'@'%' identified with mysql_native_password by '123456';
3、如果你需要授权

授权也不能兼并创建账号了,只能授权

grant all privileges on . to 'root'@'%' with grant option;
flush privileges;
密码复杂度策略
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
密码复杂度验证策略导致的,关闭后设定即可

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 服务的默认编码

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 注释掉本地监听

[mysqld]

bind_address=127.0.0.1

2、更新账号的 host

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


慷慨的麦片
1 声望0 粉丝