How to reliably restore MySQL blobs

前端 未结 2 619
谎友^
谎友^ 2021-02-08 14:26

I have been backing up a MySQL database for several years with the command: mysqldump myDatabaseName -u root > myBackupFile.sql

The backups have appeare

相关标签:
2条回答
  • 2021-02-08 15:18

    I managed to back up and restore the blobs by using the following mysqldump command:

    mysqldump --opt  --skip-extended-insert --max_allowed_packet=128M -u root myDB > filename
    

    Not sure if it’s specifying max_allowed_packet on the command line or the skip-extended-insert that did the trick.

    I assumed that my max_allowed_packet of 32M was being used, but I think that in the mysql config file it is in the [mysqld] section and so probably does not apply to dump.

    I still don’t understand why I got no errors on either the dump or the restore.

    0 讨论(0)
  • 2021-02-08 15:20

    mysqldump --skip-extended-insert works but can reduce performance by 100x on restore, making it not a viable choice.

    When you do the backup, max_allowed_packet is ignored by mysqldump (by design?) The actual complement is net_buffer_length. So make sure your max_allowed_packet is bigger than your net_buffer_length and it should work. As in:

    mysqldump -u root --net_buffer_length=100k oldDB > backup.sql
    mysql -u root --max_allowed_packet=10M newDB < backup.sql
    
    0 讨论(0)
提交回复
热议问题