mysql中max_allowed_packet参数的配置方法(避免大数据写入或者更新失败)

这篇文章主要介绍了mysql中max_allowed_packet参数的配置方法,以及查看max_allowed_packet参数当前值的方法,需要的朋友可以参考下

MySQL根据配置文件会限制Server接受的数据包大小。有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败。

查看目前配置:

复制代码 代码如下:

show VARIABLES like ‘%max_allowed_packet%‘;

显示的结果为:

复制代码 代码如下:

+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+

以上说明目前的配置是:1M

修改方法

1、修改配置文件

可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。

复制代码 代码如下:

max_allowed_packet = 20M

如果找不到my.cnf可以通过

复制代码 代码如下:

mysql --help | grep my.cnf

去寻找my.cnf文件。
linux下该文件在/etc/下。

2、在mysql命令行中修改

在mysql 命令行中运行:

复制代码 代码如下:

set global max_allowed_packet = 2*1024*1024*10

然后退出命令行,重启mysql服务,再进入。

复制代码 代码如下:

show VARIABLES like ‘%max_allowed_packet%‘;

查看下max_allowed_packet是否编辑成功

注意:该值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败。

时间: 2024-08-05 17:44:08

mysql中max_allowed_packet参数的配置方法(避免大数据写入或者更新失败)的相关文章

oracle基于3种方法的大数据量插入更新

过程插入更新的3种方法: a.逐条检查插入或更新,同时执行插入或更新 b.逐条merge into(逐条是为了记录过程日志与错误信息) c.基于关联数组的检查插入.更新,通过forall批量sql执行 以下为模拟步骤: 1.创建模拟大表,数据量1亿不分区 create table big_table as SELECT ROWNUM RN,'A' A,'B' B,'C' C,'D' D FROM ( SELECT ROWNUM RN FROM DUAL CONNECT BY ROWNUM <=

NHibernate各种数据库连接参数文件配置方法说明

//NHibernate各种数据库连接参数文件配置方法说明 //配置文件Config/Hibernate.cfg.xml内容如下所示:<?xml version="1.0" encoding="utf-8" ?><hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >  <session-factory name="CwfSer

mysql 5.7.14 安装配置方法图文教程(转)

http://www.jb51.net/article/90259.htm ******************************** 因笔者个人需要需要在本机安装Mysql,先将安装过程记录如下,希望对他人有所参考. 一.下载软件 1. 进入mysql官网,登陆自己的oracle账号,下载Mysql-5.7.14,下载地址:http://dev.mysql.com/downloads/mysql/ 2.将下载好的文件解压到指定目录,笔者解压在C:\software\Mysql\mysql

mysql 5.7.13 安装配置方法图文教程(win10) (转)

http://www.jb51.net/article/87152.htm ***************************** MySQL是一款关系型数据库管理系统,是由Oracle旗下公司MySQL AB 公司开发,是在web方面最好的.最流行的关系型数据库软件应用之一,深受广大个人使用者以及中小型企业的喜爱. 方法/步骤 双击安装文件,进入安装,如图所示,点击“next”,进入下一步 在协议许可(LicenseAgreement)界面,勾选“Iacceptthelicenseterm

mysql中判断记录是否存在方法比较【转】

把数据写入到数据库的时,常常会碰到先要检测要插入的记录是否存在,然后决定是否要写入. 我这里总结了判断记录是否存在的常用方法: sql语句:select count(*) from tablename; 然后读取count(*)的值判断记录是否存在.对于这种方法性能上有些浪费,我们只是想判断记录记录是否存在,没有必要全部都查出来. 以下这个方法是我推荐的. sql语句:select 1 from tablename where col = col limit 1; 然后读取语句执行所影响的行数.

XAMPP中proftpd的简明配置方法

XAMPP中proftpd的简明配置方法 用LAMPP的安装方法可以开一个默认的nobody用户,用lampp security就可以初始设置相应的默认用户密码.如果要有多用户,又怎样管理.目录怎样设置呢?具体要求如下:使用Lampp的proftpd,开通多个FTP用户,并各分配一个目录,而且需要限制用户在自己的目录里面,可以自由读写. 操作步骤:第一步:设置ftp用户组,输入命令: $ groupadd ftpusers #创建用户级ftpusers 第二步:创建用户目录\用户\密码,输入命令

axios中url参数变量配置

首先在route的配置文件中配置 变量前加:,这样就能传参给相应组件了 { path:'/user/:name', name:'user_info', component:UserInfo }, 在相应组件中,写axios方法拿取数据 getUser(){ Axios.get(`https://cnodejs.org/api/v1/user/${this.$route.params.name}`) .then(response=>{ window.console.log(response) })

解决误删Mysql中root所有权限的方法!

背景: 长时间的对着电脑,造成了"神志不清",一不小心在Mysql下误操作了"revoke all on *.* from 'root'@'localhost'; ",这个命令的意思就是删除mysql中最高权限的用户root的所有权限.因为本机mysql的密码为空,虽然依旧可以进去mysql,但再也不法执行修改操作. 解决方法: 1.首先杀掉mysql进程 #pkill mysql 2.以--skip-grant-tables方式启动 #/usr/local/mys

Mysql中字符串正确的连接方法

虽然SQL server和My sql的语句基本都一致,但是仍然存在一些小区别.就如字符串的连接来说,SQL server中的字符串连接是使用“+”来连接,不带引号sql server是做加法运算.而my sql中无论是带引号和不带引号,它都将其先转成数字型,然后在做运算. SQL Server中字符串的连接: ps:Age=21 SELECT '12'+'34',Age+1 FROM table 其结果输出结果是第一列是1234,第二列是22. MySQl中字符串连接: SELECT '12'