mysql - 如何可靠地恢复 MySQL blob

标签 mysql backup blob restore

多年来,我一直使用以下命令备份 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_pa​​cket 还是指定了 skip-extended-insert

我假设我的 max_allowed_pa​​cket 32M 正在使用,但我认为在 mysql 配置文件中它位于 [mysqld] 部分中,因此可能不适用于转储。

我仍然不明白为什么我在转储或恢复时都没有错误。

关于mysql - 如何可靠地恢复 MySQL blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3489437/

相关文章:

mysql - 将 MySql Provider 与 Entity Framework 模型结合使用

eclipse - 备份 Eclipse 插件和设置

php - 如何从 MySql 数据库中检索图像?

php - MySQL 中的 blob\text 图像返回 NULL

mysql - 如何在 Postgresql 中为每个用户创建顺序 ID

mysql - 追随者/关注关系

azure - 网站(文件系统和数据库)备份似乎永远不会完成

java - 如何在 Java 中操作 BLOB?

php - 从 PHP 访问 MySQL 的访问被拒绝

sql - Azure 自动备份频率