Laravel 5.5 适配MySQL 8.0.11:无法设置sql_mode为NO_AUTO_CREATE_USER求解
解决Laravel 5.5与MySQL 8.0.11的
NO_AUTO_CREATE_USER报错问题 这个报错的核心原因很明确:MySQL 8.0.11 已经彻底移除了NO_AUTO_CREATE_USER这个SQL模式选项,所以不管你是手动执行set global sql_mode命令,还是Laravel尝试设置这个模式,都会触发ERROR 1231。下面是具体的解决步骤:
1. 清理MySQL的全局SQL模式
首先确认当前MySQL的SQL模式设置,执行以下SQL命令:
SELECT @@GLOBAL.sql_mode; SELECT @@SESSION.sql_mode;
如果输出结果里包含NO_AUTO_CREATE_USER,需要永久移除它:
- 找到MySQL的配置文件(Linux系统通常是
/etc/my.cnf或/etc/mysql/my.cnf,Windows系统是my.ini,位置可能在MySQL安装目录或C:\ProgramData\MySQL下) - 找到
sql_mode配置行,删除其中的NO_AUTO_CREATE_USER字段。比如原来的配置可能是:
修改后变成:sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONsql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION - 保存配置文件后,重启MySQL服务让修改生效(Linux用
systemctl restart mysql,Windows在服务管理器里重启MySQL服务)
2. 检查并修正Laravel的数据库配置
Laravel 5.5可能会在数据库配置中指定SQL模式,需要确认并移除NO_AUTO_CREATE_USER:
- 打开项目根目录下的
config/database.php - 找到
mysql配置数组中的modes项(如果存在),删除其中的'NO_AUTO_CREATE_USER'元素。示例修改后:'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, 'modes' => [ 'ONLY_FULL_GROUP_BY', 'STRICT_TRANS_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'ERROR_FOR_DIVISION_BY_ZERO', 'NO_ENGINE_SUBSTITUTION', ], ], - 如果没有
modes项,通常不需要额外设置,因为Laravel会使用MySQL的全局模式
3. 额外注意:MySQL 8.0的用户权限设置
MySQL 8.0不再支持通过GRANT语句自动创建用户,所以如果你是新创建数据库用户,需要先执行CREATE USER命令,再给用户授权。比如:
CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'localhost'; FLUSH PRIVILEGES;
确保Laravel配置文件中使用的数据库用户已经正确创建并拥有足够权限。
完成以上步骤后,重新尝试登录应用,应该就能解决这个报错了。
内容的提问来源于stack exchange,提问作者manifestor
相关产品推荐
相关产品推荐

