如何在MySQL中摆脱STRICT SQL模式

fir*_*dev 24 mysql macos configuration homebrew sql-mode

这是对MYSQL这个问题的跟进,DATETIME格式不正确

如何一劳永逸地摆脱STRICT_TRANS_TABLES?

mysql --help 报告以下配置:

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf

$ ls  /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
ls: /Users/pain/.my.cnf: No such file or directory
ls: /etc/mysql/my.cnf: No such file or directory
ls: /usr/local/etc/my.cnf: No such file or directory
/etc/my.cnf

$ cat /etc/my.cnf
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
Run Code Online (Sandbox Code Playgroud)

但这没有用.我有一些遗留代码,每次重新启动计算机时我都要启动mysql并更改sql_mode.

更新

所以我放弃了Homebrew安装的MySQL并从mysql.com下载它.但这也没有帮助.这里的答案如下:如何修复`未知变量'sql-mode = ANSI'`?我曾尝试不同的变化/etc/my.cnf:[mysql],[mysqld],sql_mode,sql-mode-没有任何帮助.

Pau*_*ren 40

这个问题也让我感到困惑了一段时间.到目前为止,答案都没有解决原始问题,但我相信我的确如此,我会发布它,以防它帮助其他任何人.

我在OS X 10.10.3上安装了MySQL(来自mysql.com)Community Edition 5.7.10

最后我创建了一个/etc/mysql/my.cnf包含以下内容: -

[mysqld]

sql_mode=NO_ENGINE_SUBSTITUTION
Run Code Online (Sandbox Code Playgroud)

重新启动服务器后,SHOW VARIABLES LIKE 'sql_mode';我给了我: -

+---------------+------------------------+
| Variable_name | Value                  |
+---------------+------------------------+
| sql_mode      | NO_ENGINE_SUBSTITUTION |
+---------------+------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

最后,没有严格的模式!

  • 同样的事情发生在我的Mac OS X,El Capitan上.sql_mode仅在/etc/mysql/my.cnf中设置时才有效.我也必须创建文件夹和文件. (4认同)

fir*_*dev 14

所以最后我删除了我从mysql.com获得的MySQL服务器,通过Homebrew重新安装它并且不得不编辑

/usr/local/Cellar/mysql/5.6.xx/my.cnf
Run Code Online (Sandbox Code Playgroud)

在哪里我可以评论出来的STRICT_TRANS_TABLES.

然而,这并不能解释为什么默认配置会覆盖默认配置/etc/my.cnf,但我已经花了太多时间在这上面.顺便说一句,我仍然不确定如何处理mysql.com提供的发行版.

  • 那应该是```set global sql_mode =''```:-) (7认同)
  • 警告:使用 `set global` 查询来设置 sql_mode 在 MySQL 服务器重启后不会持续存在。您最好遵循 [以上](/sf/answers/2409881841/) 的建议。 (2认同)

小智 9

在Centos 6.5上我必须编辑 /usr/my.cnf 和设置(即使已/etc/my.cnf存在并且绑定已成功设置在那里

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
Run Code Online (Sandbox Code Playgroud)

包来自:

mysql-community-client.x86_64      5.6.16-1.el6            @mysql56-community
Run Code Online (Sandbox Code Playgroud)


ssn*_*ody 6

根据OS X上MySQL严格模式,有问题的设置实际上是/usr/local/mysql/my.cnf并且可以被注释掉以停止此行为.