Отвечу сам.
Короткая версия: в конструкторе pdo четвертым параметром добавить массив с
PDO::MYSQL_ATTR_MAX_BUFFER_SIZE=>1024*1024*50
,
где число - размер пакета в байтах.
Полная версия:
Частая рекомендация при подобной ошибке - увеличение wait_timeout и max_allowed_packet
в конфигурационном файле (/etc/my.cnf в моем случае), мне не помогло. Подробно
тут.
Помогли же:
1.
документация msyql, где указано, что you must increase this variable both in the client and in the server
2.
топик о том, что во всем виноват pdo
3.
комментарий на php.net о том, что у pdo есть свой собственный параметр MYSQL_ATTR_MAX_BUFFER_SIZE, который и надо увеличить.