- 积分
- 79
- 帖子
- N币
-
- 主题
- A币
-
- 注册时间
- 2019-6-18
- 最后登录
- 1970-1-1
|
MYSQL8.0以后密码验证方式从 mysql_native_password 改变为 caching_sha2_password ,虽说更加安全,但是目前的PHP还不支持这个加密方式,导致现在PHP链接MYSQL出错,登录不上数据库。
解决办法:
1.找到mysql配置文件,在windows系统是:my.ini,在linux下是my.cnf
将
default_authentication_plugin=caching_sha2_password
改为
default_authentication_plugin=mysql_native_password
2更改密码用户密码。因为改了默认验证方式后,只是后续创建的用户密码验证方式会改,前面创建的用户还是保持新的方式,需要修改一次密码使验证方式变为旧的验证方式
使用自带的:MySQL 8.0 Command Line Client 命令行
先:use mysql;
回车
然后:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
回车
然后测试是否链接正常:
<?php
$link=mysqli_connect('127.0.0.1','root','123456789');
if(!$link) echo "failed!";
else echo "ok!";
?>
链接正常就ok,不能链接再另找它法,待后续PHP是否支持新的验证方式
最后说明PHP7以后以没有php_mysql模块,需要使用的用 mysqli 代替
|
|