新装了环境,装了mysql8,PHP连接mysql时总是报:
PHP Warning: mysqli::mysqli(): The server requested authentication method unknown to the client [caching_sha2_password]
虽然只是一个警告但就是连接不上数据库,摸索了好久才发现从Mysql5 到Mysql8启用了新的加密方法。
解决办法:修改mysql配置文件my.cnf 使数据库启用兼容的加密方式
sudo vi /usr/local/etc/my.cnf ,在最下面新增如下代码:
[mysqld]
default_authentication_plugin= mysql_native_password
保存退出,重启mysql。
再次运行PHP成功连接mysql。
mac下启动,重启mysql命令:
启动MySQL服务 mysql.server start
停止MySQL服务 mysql.server stop
重启MySQL服务 mysql.server restart