我在Windows 7上运行mysql 5.7.17,我发现它的配置与我从docker镜像运行时的配置不同。更具体地说,docker镜像添加了ONLY_FULL_GROUP_BY
模式,默认情况下Windows安装不会。我也想在Windows中添加它(永久,不仅仅是为了会话)。我尝试过这个选项:
[mysqld]
sql_mode="NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY"
和
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY
在C:\Program Files\MySQL\MySQL Server 5.7\my-default.ini
中(这是安装创建的唯一文件,但在评论中告知不要编辑它),C:\Program Files\MySQL\MySQL Server 5.7\my.ini
和C:\Windows\my.ini
。当我执行mysql --help
时,我得到了这个输出:
以给定顺序从以下文件中读取默认选项: C:\ windows \ my.ini C:\ windows \ my.cnf C:\ my.ini C:\ my.cnf C:\ Program Files \ MySQL \ M ySQL Server 5.7 \ my.ini C:\ Program Files \ MySQL \ MySQL Server 5.7 \ my.cnf
我在C:\
中没有任何相关内容。
但是服务器似乎没有选择sql模式。当我查询SELECT @@sql_mode
和SELECT @@global.sql_mode
时,我只会获得STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
。
在Windows上,MySQL Installer与用户交互,并在基本安装目录中创建名为my.ini的文件作为默认选项文件。如果从Zip存档在Windows上安装,则可以将基本安装目录中的my-default.ini模板文件复制到my.ini,并将后者用作默认选项文件。
但同样,我只创建了my-default.ini
。