如何在安装后更改mysql sql模式

cl25kdpy  于 12个月前  发布在  Mysql
关注(0)|答案(4)|浏览(119)

我有mysql安装和表创建.我想删除strict_trans_tables从sql模式,怎么做?我试了following:1)转到phpmyadmin变量和编辑sql模式,但mysql重置回默认值
2)跟随https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-setting并尝试在命令行中重置SQL模式:

sudo mysqld --sql mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

字符串
3)找到文件/etc/mysql/my.cnf并尝试更改那里的设置,但没有找到任何SQL模式信息。
安装后可以更改SQL模式吗?如何更改?

7cjasjjr

7cjasjjr1#

在你的mysql控制台改变你的sql_mode(例如全局改变)

SET GLOBAL sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

字符串
但在更改之前,请仔细阅读https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html

vecaoik1

vecaoik12#

3)找到文件/etc/mysql/my.cnf并尝试更改那里的设置,但没有找到任何SQL模式信息
如果你没有在文件中设置任何SQL模式,只需添加新行:

sql_mode="NO_BACKSLASH_ESCAPES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

字符串
欢呼

omvjsjqw

omvjsjqw3#

从MySQL 5.7.x开始,默认的sql模式包括ONLY_FULL_GROUP_BY,但在5.7.5之前,MySQL ONLY_FULL_GROUP_BY默认不启用。

ONLY_FULL_GROUP_BY:拒绝不确定分组查询

有关更多详细信息,请查看sql_mode的文档
按照以下方法修改sql_mode

方法一:

检查sql_mode的默认值:

SELECT @@sql_mode

字符串
通过执行以下查询从控制台删除ONLY_FULL_GROUP_BY

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

方法二:

访问phpmyadmin编辑您的sql_mode

  • 登录phpmyadmin并打开localhost
  • Top onVariables出现在菜单项的顶部,搜索sql mode
  • 单击编辑按钮删除ONLY_FULL_GROUP_BY并保存

重启MySQL服务器

sudo service mysql restart OR Logout `phpmyadmin` and login again.

dfuffjeb

dfuffjeb4#

我找到了一个永久的解决办法

set PERSIST sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

字符串
Step By step tutorial given below

相关问题