我们一直在用 ColdFusion 和 MySQL 做一些测试,有点困惑。我们知道您可以在 /etc/my.cnf 文件中设置不同的“sql-mode”标志,这将导致 MySQL 以特定方式运行,具体取决于定义的模式。我们知道您也可以在启动 MySQL 时使用“--sql-mode=”标志设置这些标志。
在 /etc/my.cnf 中,我们看到没有定义模式(其中一个被注释掉了),所以我们添加了 'sql-nodes=""' 并重新启动了 mysql (/etc/init.d/mysqld restart)。每当我们进入 MySQL 命令行查看设置的模式时,输出如下:
mysql> SELECT @@GLOBAL.sql_mode;
+-------------------+
| @@GLOBAL.sql_mode |
+-------------------+
| |
+-------------------+
1 row in set (0.00 sec)
mysql> SELECT @@SESSION.sql_mode;
+--------------------+
| @@SESSION.sql_mode |
+--------------------+
| |
+--------------------+
1 row in set (0.00 sec)
这告诉我没有模式,这就是我们想要的。然而,在 ColdFusion 8 中做同样的事情,我们看到以下内容:
SELECT @@GLOBAL.sql_mode;
[empty string]
SELECT @@SESSION.sql_mode;
STRICT_TRANS_TABLES
这表明 Global sql-mode 为空,而 Session sql-mode 设置为 ' STRICT_TRANS_TABLES
',这是我们不想要的。
现在,在我们做任何其他事情之前,我可以在 ColdFusion 中将 Session sql-mode 设置为空,这给了我想要的效果,但我真的不想去每个查询并添加它。
我(尝试)查看 /etc/init.d/mysqld 脚本以查看是否可以找到设置模式的位置,但什么也没看到。
你们对正在发生的事情有什么建议或想法吗?就好像 ColdFusion 将它设置在某个地方一样,但是我可以看到 ColdFusion 管理员中没有任何东西可以设置它。