本意是搭个cms玩流量监控,然后追求比较新的版本就下了最新的ubuntu比较下的版本结果换多少个源默认下的mysql都是8.0,php用的5.7
在连接过程中遇见第一个问题 :
普通用户无法连接mysql
解决方法
首先root用户进入mysql
mysql -uroot -p
查询user,plugin表
select user,plugin from mysql.user;
发现root对应的plugin表为 auth_socket
修改为mysql_native_password #为什么改这个可以自行查查这边就不复述口水话了
update mysql.user set plugin='mysql_native_password' where user='root';
这边提一嘴在8.0修改密码不能直接update改authentication_string=' 密码'这样改了登不进去
可以这样改
alter user 'root'@‘localhost’ identified with mysql_native_password by '123456';
重启mysql服务
systemctl restart mysql
现在可以普通用户登录mysql了但是php连接数据还是会报错
大概率报的错一是字符集,二是认证类型这种的The server requested authentication method unknown to the client解决办法是在配置文件加入以下配置
配置文件路径为:/etc/mysql/mysql.conf.d/mysqld.cnf
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
default_authentication_plugin=mysql_native_password
重启mysql服务 至此PHP连接正常