Mysql默认配置更改

一.group_concat函数

用group_concat连接字段的时候是有长度限制的,并不是有多少连多少

登录mysql或者navicat连接,查看默认

show variables like 'group_concat_max_len';

默认是1024

会导致字符串不完整的现象出现

度官方文档https://dev.mysql.com/doc/refman/5.7/en/aggregate-functions.html

 

 

 

1.window下

修改my.ini文件,在[mysqld]下新增

下面两句一条即可,4294967295我在新增完成之后,mysql服务重启失败,启动不了

改为10240000重启成功,注意,后面没有标点符号

group_concat_max_len = 4294967295
group_concat_max_len = 10240000

然后重启mysql服务即可

我的电脑 - 管理 - 服务和应用 - 服务 - 在列表中找到mysql - 重启

2.linux下

修改mysqld.cnf文件,这是我的mysql配置文件

vi mysql/mysql.conf.d/mysqld.cnf

[mysqld]下新增

group_concat_max_len = 10240000

重启mysql服务

service mysql restart
service mysql status

3.如果是生产环境

无法重启mysql服务的情况,选择临时通过sql命令修改

SET GLOBAL group_concat_max_len = 10240000;
SET SESSION group_concat_max_len = 10240000;

注意:这种方式修改,服务重启后会失效

二:GROUP BY clause and contains nonaggregated column

ONLY_FULL_GROUP_BY是根源,去掉

1.通过sql命令修改

本地这样配置没生效过

select @@global.sql_mode;
set @@global.sql_mode =
'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_
AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

 更改mysql配置文件

vi /etc/mysql/conf.d/mysql.cnf

新增下面代码(有就修改)

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_
ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

重启服务

service mysql restart

三:datetime 默认值为‘0000-00-00 00:00:00'问题

NO_ZERO_IN_DATE,NO_ZERO_DATE是无法默认为‘0000-00-00 00:00:00’的根源,去掉之后再次新建表 就可以了

1.通过sql命令修改

本地这样配置没生效过

select @@global.sql_mode;
set @@global.sql_mode =
'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREAT
E_USER,NO_ENGINE_SUBSTITUTION'

2.更改mysql配置文件

vi /etc/mysql/conf.d/mysql.cnf

新增下面代码(有就修改)

[mysqld]
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AU
TO_CREATE_USER,NO_ENGINE_SUBSTITUTION

重启服务

service mysql restart

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值