Eu tento fazer um backup de um enorme banco de dados MySQL via mysqldump
. O banco de dados tem milhões de linhas com um tamanho total de 1,3 TB.
CREATE TABLE PageContents
(
ID int(11) unsigned,
Added date,
Text MEDIUMTEXT,
FOREIGN KEY(ID) REFERENCES AllPages(ID) ON DELETE CASCADE,
PRIMARY KEY(ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci KEY_BLOCK_SIZE=1;
mas recebo um erro após 8 horas de despejo:
mysqldump: Error 2020: Got packet bigger than 'max_allowed_packet' bytes when dumping table `PageContents` at row: 20946782
eu tinha aumentado max_allowed_packet
emmysql.cnf
max_allowed_packet = 16G
Primeiro, certifique-se de ter definido
max_allowed_packet
na seção apropriada[mysqldump]
do arquivo de configuraçãomy.cnf
e que não exceda o valor máximo de 1G :Ou você também pode especificá-lo em tempo de execução (sem precisar alterar my.cnf):
Você pode adicionar
max_allowed_packet=512M
ao seumysqldump
comando.Ou adicione
max_allowed_packet=512M
à[mysqldump]
seção do seumy.cnf
Nota: Não funcionará se não estiver na
[mysqldump]
seção