MySQL严格模式卡住了

从Remi-DB(CentOS 6)升级到MySQL 5.5后,我们遇到了一个问题:每次重新启动时,我们的SQL服务器都会将自己设置为严格模式:

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 SESSION”sqlmode以及。

我也想注意到,我也在my.cnf文件中试过这个。

唯一可行的解​​决scheme是编写一个init文件在重新启动时运行SET GLOBAL sql_mode ,但是这很麻烦,烦人,而且不合理,所以必须让这个工作成为可能。

我试过重新安装SQL服务器无济于事。 (不过,我确实从备份中取回了数据,因为这是一个生产服务器。)

Percona Server v5.5.30-30.1-log也是这样。

请参阅: http : //bugs.mysql.com/bug.php?id=68643

并检查可能已经由mysql_install_db创build的/usr/my.cnf或类似文件($ MYSQL_HOME / my.cnf)。

这是重写我们的所有其他configuration文件中的sql_mode设置。

把这个添加到你的my.cnf中,然后重新启动MySQL。 确保没有其他线路覆盖之后。

replacesql-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" 

我知道这是旧的,但如果有人需要它:

我在Windows 7 x64上使用了MySQL Server 5.6。

原来它在这里加载一个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"