在从Remi( MySQL 6)升级到SQL 5.5之后,我们遇到了一个问题,每次重新引导我们的SQL server都会将自己设置回严格模式:
mysql> SELECT @@GLOBAL.sql_mode;
+--------------------------------------------+
| @@GLOBAL.sql_mode |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+然后我运行命令:
mysql> SET GLOBAL sql_mode="";
Query OK, 0 rows affected (0.00 sec)这对于会话来说很好,但是在重新启动时,这个更改就丢失了(我也尝试过设置"SET会话“sqlmode )。
我还想指出,我也在my.cnf文件中尝试过这一点。
唯一可行的解决方案是编写一个init文件,以便在重启时运行SET GLOBAL sql_mode,但这既麻烦又烦人,而且不合理,因此必须有一种方法使其立即工作。
我尝试过重新安装SQL服务器,但没有结果。(当然,我从备份中提取了数据,因为这是一个生产服务器。)
发布于 2013-03-27 16:21:13
这在PerconaServerv5.5.30-30.1-log上也对我不利。
请参阅:http://bugs.mysql.com/bug.php?id=68643
并检查mysql_install_db可能创建的/usr/my.cnf或类似文件($MYSQL_HOME/my.cnf)。
这是在所有其他配置文件中重写我们的sql_mode设置。
发布于 2013-03-06 15:18:37
将其添加到my.cnf中并重新启动MySQL。确保在那之后没有其他行来覆盖它。
替换sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
使用
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
有时,添加下面的行也可能有效。先试一试,如果不起作用,就试试这些。
sql-mode=""或
sql-mode="TRADITIONAL"发布于 2014-12-11 14:57:17
我知道这是旧的,但万一有人需要它:
我是用WindowsServer5.6在Windows7 MySQL上获得这一结果的。
结果它在这里加载了一个my.ini文件:
C:\ProgramData\MySQL\MySQL Server 5.6\my.ini即使MySQL是从这里安装并运行的:
C:\Program Files\MySQL\MySQL Server 5.6将ProgramData ini中的sql模式更改为以下内容,然后重新启动MySql解决了这个问题:
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" https://serverfault.com/questions/485091
复制相似问题