赞
踩
MySQL8报错:Incorrect datetime value: ‘0000-00-00 00:00:00’ for column ‘last_attempt_gmt’
在 MySQL 中,sql_mode
用于定义数据库服务器的 SQL 模式,该模式影响 SQL 语句的执行行为。你可以使用以下步骤来设置 sql_mode
:
打开 MySQL 配置文件,通常是 /etc/my.cnf
或 /etc/mysql/my.cnf
。
在配置文件中找到 [mysqld]
部分。
在 [mysqld]
部分下添加或修改 sql_mode
的值:
[mysqld]
sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
保存并关闭文件。
重启 MySQL 服务以使更改生效:
sudo systemctl restart mysqld
在 MySQL 命令行中,你可以使用以下语句来设置 sql_mode
,但这只在当前会话中有效,当 MySQL 服务器重新启动时将被重置:
SET GLOBAL sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
SET SESSION sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
上述语句设置了全局 sql_mode
和会话级别的 sql_mode
,以确保它在服务器重启后仍然有效。
请注意,如果你使用的是 MySQL 8.0 或更高版本,ERROR_FOR_DIVISION_BY_ZERO
通常已经包含在 STRICT_TRANS_TABLES
中,因此你可以仅设置 sql_mode
为 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
。
请根据你的具体需求选择合适的 sql_mode
设置。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。