通过MySQL命令行客户端,我尝试设置全局mysql_mode:
SET GLOBAL sql_mode = TRADITIONAL;
这适用于当前会话,但在我重新启动服务器后,sql_mode将返回其默认值:'',空字符串。如何将sql_mode永久设置为TRADITIONAL?如果相关,MySQL是WAMP包的一部分。谢谢你。
slsn1g291#
MySQL sql_mode "TRADITIONAL",又名“严格模式”,由the MySQL docs定义为:当向列中插入不正确的值时,“给予错误而不是警告”。下面是如何确保将sql_mode设置为"TRADITIONAL"。
"TRADITIONAL"
首先检查您当前的设置:
mysql mysql> SELECT @@GLOBAL.sql_mode; +-------------------+ | @@GLOBAL.sql_mode | +-------------------+ | | +-------------------+ 1 row in set (0.00 sec)
这返回了空白,默认值,这很糟糕:你的sql_mode没有设置为“传统”。
编辑配置文件:
sudo vim /etc/mysql/my.cnf
在标记为[mysqld]的部分中添加此行:sql_mode="TRADITIONAL"(正如fancyPants指出的那样)
[mysqld]
sql_mode="TRADITIONAL"
然后重启服务器:
sudo service mysql restart
然后再检查:
mysql mysql> SELECT @@GLOBAL.sql_mode; +------------------------------------------------------------------------------------------------------------------------------------------------------+ | @@GLOBAL.sql_mode | +------------------------------------------------------------------------------------------------------------------------------------------------------+ | STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | +------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
成功!你现在是金色的了。
6kkfgxo02#
将以下内容添加到您的my.cnf文件(如果您使用的是windows,则添加到my.ini文件):
并重新启动服务器
wdebmtf23#
对于Windows上的mysql 8:
# Set the SQL mode to strict sql-mode="NO_ENGINE_SUBSTITUTION"
是破折号不是下划线sql_mode / sql-mode
z8dt9xmd4#
如果您使用的是Digital Ocean,mysql cnf文件是模拟的,实际上并不真正与数据库交互。在本例中,您使用(对于空白SQL模式)设置SQL模式...
cnf
doctl databases sql-mode set DB-UUID ""
如果你不知道你的数据库UUID,请使用以下命令查看:
GET DB UUID with: doctl databases list
来源:digitalocean.com: doctl databases sql-mode set
4条答案
按热度按时间slsn1g291#
MySQL sql_mode
"TRADITIONAL"
,又名“严格模式”,由the MySQL docs定义为:当向列中插入不正确的值时,“给予错误而不是警告”。
下面是如何确保将sql_mode设置为
"TRADITIONAL"
。首先检查您当前的设置:
这返回了空白,默认值,这很糟糕:你的sql_mode没有设置为“传统”。
编辑配置文件:
在标记为
[mysqld]
的部分中添加此行:sql_mode="TRADITIONAL"
(正如fancyPants指出的那样)然后重启服务器:
然后再检查:
成功!你现在是金色的了。
6kkfgxo02#
将以下内容添加到您的my.cnf文件(如果您使用的是windows,则添加到my.ini文件):
并重新启动服务器
wdebmtf23#
对于Windows上的mysql 8:
是破折号不是下划线sql_mode / sql-mode
z8dt9xmd4#
如果您使用的是Digital Ocean,mysql
cnf
文件是模拟的,实际上并不真正与数据库交互。在本例中,您使用(对于空白SQL模式)设置SQL模式...如果你不知道你的数据库UUID,请使用以下命令查看:
来源:digitalocean.com: doctl databases sql-mode set