mysql8.0.11的坑早知道
1、plugin caching_sha2_password could not be loaded
我在mac上用Sequel Pro连数据库的时候,会报出以上错误,这是应为8.0.11把身份认证插件改成了 caching_sha2_password ,而客户端没法使用此插件。
这是我们只要用命令行进去mysql,然后执行
ALTER USER 'YOURUSERNAME'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOURPASSWORD';
比如:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
然后重新加载下数据库配置
FLUSH PRIVILEGES;
这样就可以用客户端连接数据库了。
如果你想彻底更换所有用户身份认证插件,可以修改my.cnf。在末尾增加一行
default_authentication_plugin=mysql_native_password
2、Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'
我在使用laravel框架执行migrate命令时,出现错误
QLSTATE[42000]: Syntax error or access violation: 1231 Variable 'sql_mode' can't be set to the value of ' NO_AUTO_CREATE_USER '
是因为mysql在8.0版本中已经移除了 NO_AUTO_CREATE_USER 这个模式。
解决方案:只需要将 config/database.php
配置文件中mysql 的 strict
的值改为false
即可!