最近由于剁手买了mac因此在mac上搭建lnmp环境。php
恰好看到mysql从5.7跳到8,性能听说快上一倍,果断尝鲜!mysql
lnmp基本都弄好了,可是到用php链接Mysql这一步出了岔子。sql
出错缘由:数据库
mysql8使用caching_sha2_password的身份验证机制vim
以往的验证机制则是mysql_native_password性能
解决方法:加密
sudo vim /etc/my.cnf
(mysql8默认没有配置文件,这个得新建)spa
添加:code
[mysqld] default_authentication_plugin=mysql_native_password
可是这样还没彻底解决,由于这样只对修改配置并重启Mysql后的新建用户有效blog
而最初建立的root用户依然是caching_sha2_password的身份验证机制
【修改配置并重启后新建一个用户,能够令其密码与root密码相同,供后续使用(这一步也能够验证配置是否生效,生效的话加密后的字符串应跟root密码不一样)】
(新建用户:CREATE USER ‘新用户名’@‘localhost' IDENTIFIED BY ‘密码’;)
(如下修改操做前请备份!!)
这个能够在mysql数据库中的user表直接将root用户的plugin改成mysql_native_password
同时把对应的authentication_string改成新用户加密后的密码
(顺利的话这个时候重启mysql就能够了,若是能够了就不用往下看了)
然而这个时候我又恰好脑抽了,改authentication_string的时候没备份,改下去重启后就链接不上了。
无奈,只好修改密码(后来发现是我原来密码没有删除干净,致使改的密码不对。晕。)
先是修改配置文件:
[mysqld] skip-grant-tables #加了这行 default_authentication_plugin=mysql_native_password
而后重启mysql
这时候能够登陆进去修改root密码
alter user 'root'@'localhost'IDENTIFIED BY ‘新密码’;
最后记得去掉skip-grant-tables并重启Mysql