Laravel连接MySQL 8.0.11 遇到的一些坑
1. Authentication Type
相信很多朋友在mysql升级8.0.11后发现数据库连接出现了问题SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
原因在于:
用户的 Authentication type
默认为 caching_sha2_password
,导致数据库连接错误,抛出如下异常:Illuminate\Database\QueryException : SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
解决方式:
修改密码认证方式ALTER USER 'YOURUSERNAME'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOURPASSWORD';
2、删除了 NO_AUTO_CREATE_USER 模式
在 5.7.*的日志中提到已废除该模式,在8.0.11中删除了,迁移时会抛出如下异常:Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access violation: 1231 Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'
解决方案:将 config/database.php
配置文件中mysql 的 strict
的值改为false
即可!
转载来自:https://laravel-china.org/articles/10736/some-craters-in-mysql-8011