解决php链接mysql8失败问题

解决php链接mysql8失败问题

用户的 Authentication type 默认为 caching_sha2_password,导致数据库连接错误, caching_sha2_password是mysql8新启用并且默认的密码验证方式。而mysql8以前的密码验证方式为: mysql_native_password, 需要mysql链接工具也都是支持 mysql_native_password 的验证方式, 如果是使用了mysql8, 估计要多还没有来得及更新的链接工具就报错了。所以链接工具建议升级。

解决验证问题:将默认的密码验证方式修改为 mysql_native_password

在mysql8的配置文件中增加代码:

default_authentication_plugin=mysql_native_password, 默认使用 mysql_native_password 的密码方式。

1
2
3
4
5
6
7
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# skip-grant-tables
default_authentication_plugin=mysql_native_password

修改root的账户的密码验证:

默认是使用 caching_sha2_password,修改并冲设置密码:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

到此就完事儿了。

资料:

  1. https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html
  2. http://php.net/manual/zh/ref.pdo-mysql.php
坚持原创技术分享,您的支持将鼓励我继续创作!
//