解决mysql max_allowed_packet 太小 造成的程序查询数据报错问题
2016-01-04 13:47
423 查看
1.因为mysql有一个max_allowed_packet变量,可以控制其通信缓冲区的最大长度,所以当缓冲区的大小太小的时候,导致某些查询和插入操作报错。
解决方法如下,
2.解决方法
2.1 修改配置文件
a .可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。
b.如果找不到my.cnf可以通过
去寻找my.cnf文件。
c.重启mysql服务
d.执行命令查看是否成功
SHOW VARIABLES LIKE '%max_allowed_packet%'
2.2 使用命令修改max_allowed_packet 大小
a.执行命令
SET GLOBAL max_allowed_packet = 2*1024*1024*10 -- 单位为B
b.然后关闭掉这此链接,再进入执行命令
SHOW VARIABLES LIKE '%max_allowed_packet%'
3.两种方法比较
根据自身经验和网上论坛帖子,第二种方法出现问题的概率相对较小。第一种我在最近的一次设置上,不起作用,使用第二种方式就没有问题,
4.常见的问题
a.通过修改配置文件之后
max_allowed_packet 的值 不定期的自动改变, 网上对于这种解释是因为mysql内存不足,导致的
b.修改配置文件之后
max_allowed_packet 的值 之后,没有生效,重启也没有生效,一种问题是本地的客户端与mysql服务器没有断开查询的,重新链接,查看是否生效,如果没有生效,使用第二种方式,进行修改
解决方法如下,
2.解决方法
2.1 修改配置文件
a .可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。
max_allowed_packet = 20M
b.如果找不到my.cnf可以通过
mysql --help | grep my.cnf
去寻找my.cnf文件。
c.重启mysql服务
d.执行命令查看是否成功
SHOW VARIABLES LIKE '%max_allowed_packet%'
2.2 使用命令修改max_allowed_packet 大小
a.执行命令
SET GLOBAL max_allowed_packet = 2*1024*1024*10 -- 单位为B
b.然后关闭掉这此链接,再进入执行命令
SHOW VARIABLES LIKE '%max_allowed_packet%'
3.两种方法比较
根据自身经验和网上论坛帖子,第二种方法出现问题的概率相对较小。第一种我在最近的一次设置上,不起作用,使用第二种方式就没有问题,
4.常见的问题
a.通过修改配置文件之后
max_allowed_packet 的值 不定期的自动改变, 网上对于这种解释是因为mysql内存不足,导致的
b.修改配置文件之后
max_allowed_packet 的值 之后,没有生效,重启也没有生效,一种问题是本地的客户端与mysql服务器没有断开查询的,重新链接,查看是否生效,如果没有生效,使用第二种方式,进行修改
相关文章推荐
- mysql中char(n)和varchar(n)在数据存入的时候关于是否丢弃最后的空格的区别
- mysql自带的字符串相关函数
- MySQL 5.7 zip安装
- 批量修改MySQL列级别字符排序方式为utf8
- mysql排序
- Mysql进程管理
- MySQL之——Union
- mysql explain用法
- [转]MySQL 5.7 新特性大全和未来展望
- MySql ERROR 1205:Lock wait timeout exceeded; try restarting transaction
- group_concat mysql 把结果集中的一列数据用指定分隔符转换成一行
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
- Mysql table ful
- MySQL Index详解
- Mysql 命令大全
- MySql错误1045 Access denied for user 'root'@'localhost' (using password:YES) windows下的解决方案(忘记密码)
- mysql 取每组前几条记录
- mysql数据导入、导出方法汇总
- 安装mysql
- mysql导入数据load data infile用法