Error number: 4145; Symbol: ER_BULK_PARSER_COPY_BUFFER_SIZE_EXCEEDED; SQLSTATE: HY000
Message: The column data that needed to be copied due to escaped characters exceeded the size of the internal copy buffer for file ‘%s’.
ERROR 4145 – ER_BULK_PARSER_COPY_BUFFER_SIZE_EXCEEDED
错误说明
MySQL error 4145 – ER_BULK_PARSER_COPY_BUFFER_SIZE_EXCEEDED 是一个SQLSTATE HY000错误,表示批量操作语句中指定的复制缓冲区大小超出了允许上限。这意味着在 MyISAM 储存引擎中进行复制时,系统会停止复制过程,并发出超出了可用大小限制的警告,表明系统不允许使用的缓冲区的大小超过已限制的上限
常见案例
MySQL error 4145 – ER_BULK_PARSER_COPY_BUFFER_SIZE_EXCEEDED 通常发生在当用户尝试在 MyISAM 储存引擎中执行批处理操作时,MySQL服务器认为批操作的复制缓冲区大小超出了许可的范围。因此,在某些情况下,用户可能会遭遇这个错误,如当从服务器使用 LOAD DATA 或使用 SELECT INTO OUTFILE 或 INSERT INTO SELECT 时,此错误可能会发生。
解决方法
改善 ER_BULK_PARSER_COPY_BUFFER_SIZE_EXCEEDED 错误的一种方法就是增加在 MyISAM 储存引擎中指定的复制缓冲区大小。缓冲区大小可用 mysql 命令 tmp_table_size 和 max_heap_table_size 设置连接复制缓冲区,并明确表示通过在 [mysqld] 部分中指定 myisam_bulk_insert_buffer_size 和 bulk_insert_buffer_size 来显然连接的复制大小限制。
此外,可以忽略此报错,如果 MySQL 服务器复制大小正常,这样就可以避免错误消息。若要忽略 ER_BULK_PARSER_COPY_BUFFER_SIZE_EXCEEDED 错误消息,首先必须将 MySQL 服务器中 log_warnings 设置为 1,它位于 [mysqld] 部分,然后在 my.cnf 中添加 general_log_file=mysql.log 并将 log_errors 设置为 mysql.log。即使出现相同报错,也只会将错误日志记录到 mysql.log 日志中而不是抛出错误消息。