TOC

MySQL 插入的长字符串被截断问题

MySQL 出现了一个问题,插入一个长字符串(二十几KB)结果导致被截断。 首先排除了数据类型的问题,用的 mediumtext 类型。

接着排除了 PHP 的问题,因为取出 SQL 直接在 MySQL 中执行还是被截断。

发现一点很奇怪,截断的那个长字符串差不多很接近 8KB,如果加上其他字段的内容,可能正好等于 8KB。

在网上搜了一下可能和以下两项设置有关:

[mysqld]
max_allowed_packet = 1M
net_buffer_length = 8K

但是我的 MySQL 中 max_allowed_packet 有 1M,排除,剩下的 net_buffer_length 就正好符合这个 8KB 的条件。

应该就是它没错了。

INSERT INTO errorlog (
    `level`,
    `description`,
    `file`,
    `line`,
    `url`,
    `context`,
    `dateline`
) VALUES (
    '1024',
    'Error: [1024] hello world @ file:E:\abc.php line 150',
    'E:\abc.php',
    '150',
    'www.example.com/index.php?mod=abc',
    '[long_string...]',
    '0'
)