当一个MySQL客户或mysqld服务器得到一个比max_allowed_packet个字节长的包,它发出一个Packet too large错误并终止连接。
通常通过MySQL的"load data local infile"语句将一个文本文件中的内容导入到数据库中,
这样速度会很快,但今天发现如果文本的大小超过1M时,出现异常:“Packets larger than max_allowed_packet are not allowed”
MySQL的一个系统参数:max_allowed_packet,其默认值为1048576(1M),
查询:show VARIABLES like '%max_allowed_packet%';
修改此变量的值:MySQL安装目录下的my.ini文件中的[mysqld]段中的"max_allowed_packet = 1M",如更改为4M(如果没有这行内容,增加一行),保存,重起MySQL服务。现在可以load大于1M的文件了
-----------------------
修改你的 my.cnf / my.ini 文件
在里面的 [mysqld] 节中加入
set-variable=max_allowed_packet=8M
例:
[mysqld]
basedir=D:/mysql
# MySQL安装目录 :: 一定要用“/”来表示路径,因“\”是MySQL中转义符
datadir=D:/mysql/data
# MySQL数据库目录
#bind-address=192.168.0.2
# 绑定的IP地址 未使用
#port=3306
# 所用的TCP/IP端口 未定义 默认为 3306
#language=D:/mysql/share/your language directory
# 返回错误信息所用的语言 未使用 默认为English
#slow query log#=
# 记录SQL操作日志 未使用
#tmpdir#=
# 临时目录 未定义
#set-variable=key_buffer=16M
# 索引块缓冲大小为16M 未定义 默认为8M
set-variable=max_allowed_packet=8M
# 设置最大包 这就是你所要加上的
分享到:
相关推荐
当你的应用抛出“Your 'max_allowed_packet' variable is set to less than 16777216 Byte (16MB).”这样的错误,意味着当前`max_allowed_packet`的设置值小于16MB,无法处理超过这个大小的数据操作。为了继续你的...
可以通过启动客户端时指定更大的缓冲区,如`mysql --set-variable=max_allowed_packet=8M`,来解决这个问题。 8. **The table is full**: 内存中的临时表超过`tmp_table_size`限制时会出现这个错误。这可能需要...
在MySQL数据库系统中,`max_allowed_packet`是一个关键的系统变量,它决定了服务器能够处理的最大数据包大小。这个参数主要用于限制单次传输的数据量,包括INSERT、UPDATE等操作中的大块数据,以及LOAD DATA INFILE...
1. **临时设置**:在MySQL命令行中执行`set max_allowed_packet=1024M;`,这将只对当前会话有效。然后你可以尝试再次执行`source ./xxxx.sql;`来导入你的SQL脚本。 2. **永久修改配置**:如果MySQL版本不支持在线...
previously set variable or directive (e.g. ${foo}) ; Expressions in the INI file are limited to bitwise operators and parentheses: ; | bitwise OR ; ^ bitwise XOR ; & bitwise AND ; ~ bitwise NOT ; ! ...
set-variable=max_allowed_packet=1M ``` - 启动MySQL服务后,使用以下命令登录MySQL: ```bash mysql -u root -p ``` - 创建数据库`bugzilladb`: ```sql CREATE DATABASE bugzilladb; ``` - 授予特定...
set-variable=max_allowed_packet=10M ``` 这里的数值可以适当调整,10M是推荐的一个起始值,如果问题依旧存在,可以继续增大这个值。 在处理这类问题时,建议从影响范围较小的配置调整开始尝试,比如先尝试方法...
例如,如果你更改了`max_allowed_packet`的会话变量,这将只影响当前连接,而不会影响其他连接。 查看MySQL参数,可以使用`SHOW VARIABLES`命令,如`SHOW VARIABLES LIKE 'max_join_size';` 或 `SHOW GLOBAL ...