MySQL:永久设置sql_mode

kpbpu008  于 2023-06-21  发布在  Mysql
关注(0)|答案(4)|浏览(200)

通过MySQL命令行客户端,我尝试设置全局mysql_mode:

SET GLOBAL sql_mode = TRADITIONAL;

这适用于当前会话,但在我重新启动服务器后,sql_mode将返回其默认值:'',空字符串。
如何将sql_mode永久设置为TRADITIONAL?
如果相关,MySQL是WAMP包的一部分。
谢谢你。

slsn1g29

slsn1g291#

MySQL sql_mode "TRADITIONAL",又名“严格模式”,由the MySQL docs定义为:
当向列中插入不正确的值时,“给予错误而不是警告”。
下面是如何确保将sql_mode设置为"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指出的那样)

然后重启服务器:

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)

成功!你现在是金色的了。

6kkfgxo0

6kkfgxo02#

将以下内容添加到您的my.cnf文件(如果您使用的是windows,则添加到my.ini文件):

sql_mode="TRADITIONAL"

并重新启动服务器

wdebmtf2

wdebmtf23#

对于Windows上的mysql 8:

# Set the SQL mode to strict
sql-mode="NO_ENGINE_SUBSTITUTION"

是破折号不是下划线sql_mode / sql-mode

z8dt9xmd

z8dt9xmd4#

如果您使用的是Digital Ocean,mysql cnf文件是模拟的,实际上并不真正与数据库交互。在本例中,您使用(对于空白SQL模式)设置SQL模式...

doctl databases sql-mode set DB-UUID ""

如果你不知道你的数据库UUID,请使用以下命令查看:

GET DB UUID with: doctl databases list

来源:digitalocean.com: doctl databases sql-mode set

相关问题