mysqldump 的备份/恢复问题(带有 URL 的表)
Posted
技术标签:
【中文标题】mysqldump 的备份/恢复问题(带有 URL 的表)【英文标题】:Backup/Restore issue with mysqldump (table with URLs) 【发布时间】:2013-05-23 19:19:28 【问题描述】:我有一个主要有 innodb 表的 mysql。我确实使用 mysqldump、phpmyadmin 并将文件保存在 /var/lib/mysql 中进行了备份。
当我现在尝试恢复它们时,除了包含“URL”的表之外,所有表都已恢复。该表中的信息不完整。我尝试恢复这三种类型的备份,它是相同的。 (URL 使用 UTF8 存储)
知道发生了什么吗? mysqldump 有没有可能总是按预期工作? 你认为我有办法恢复我的“URL”数据吗?
【问题讨论】:
如何恢复数据?这可能是罪魁祸首。像 Phpmyadmin 这样的工具不如直接命令行输入可靠。例如:cat dump.sql | mysql -u USER -pPASSWORD -h HOST -d DATABASE
另外,您能否附上转储数据的 sn-p(假设可以公开)?
我正在使用 mysql -u root -pPASSWORD databasename 进行恢复
问题是dump数据太大,我认为里面没有包含丢失的表(我的一个同事等了30分钟才打开)。
啊,是的。巨大的数据库转储有时需要更改您的 MySQL 配置文件。通常增加 max-allowed-packet 设置会做到这一点。显然,仅对受信任的连接执行此操作。
【参考方案1】:
我最近在使用 mysqldump 时遇到了麻烦。我的语言环境和客户端、服务器和表字符集以及可能设置为使用 utf8 字符集的所有内容都设置为使用它,但我仍然在 mysqldump 上得到乱七八糟的 ASCII 输出,由于所有的 ??·$ ^"·???. mojibake 输入。我的解决方案(希望对你有用):
出口:
mysqldump -u USER -pPASS -r db.sql db
导入:
mysql -u USER -pPASS db
MYSQL [db]>SOURCE db.sql
另外,像percona xtrabackup 这样的解决方案乍一看似乎有点过头了,但至少这种方法效果很好,基本用法也很简单,该工具是 GPL 许可的,您无需担心不精确的复制,因为它会按原样复制二进制数据库文件,而不会生成应该创建像您这样的数据库的命令,但它们不会...
【讨论】:
以上是关于mysqldump 的备份/恢复问题(带有 URL 的表)的主要内容,如果未能解决你的问题,请参考以下文章
Mysql运维管理-MySQL备份与恢复实战案例及生产方案17