多年来,我一直使用以下命令备份 MySQL 数据库:
mysqldump myDatabaseName -u root > myBackupFile.sql
备份似乎工作正常...
然后我想将其中一个备份恢复到另一个命名的数据库,所以我做了:
mysql myNewDatabaseName -u root < myBackupFile.sql
我遇到了一些关于日志文件大小的错误,所以我停止了 Mysql 并删除了日志文件,并在 my.ini 文件中设置了以下参数并重新启动了 mysql。
innodb_log_file_size=64M
innodb_log_buffer_size=8M
现在恢复完成,没有错误,但包含 blob 的三个表之一永远不会恢复。
我的max-allowed-packet
设置为 32M
数据库备份大小约为 2.2 GB,其中大部分位于未还原的表中。如果我在恢复的数据库上运行 mysqldump,大小为 185 MB。
我现在尝试做一个 mysqldump
带有选项 --hex-blob
但我还没有尝试恢复该文件 (3.9 GB)。
我确实需要一种安全可靠的备份和恢复方式,因为我现有的备份似乎毫无值(value)。我特别担心它“静默失败”,据我所知,没有错误日志条目。
环境是windows server 2003 sp2
任何帮助表示赞赏!
乔治
最佳答案
我设法通过使用以下 mysqldump 命令备份和恢复 blob:
mysqldump --opt --skip-extended-insert --max_allowed_packet=128M -u root myDB > filename
不确定是在命令行上指定了 max_allowed_packet
还是指定了 skip-extended-insert
。
我假设我的 max_allowed_packet
32M 正在使用,但我认为在 mysql 配置文件中它位于 [mysqld] 部分中,因此可能不适用于转储。
我仍然不明白为什么我在转储或恢复时都没有错误。
关于mysql - 如何可靠地恢复 MySQL blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3489437/