【问题标题】:Split .sql Backup File拆分 .sql 备份文件
【发布时间】:2019-03-13 07:39:23
【问题描述】:

我每周都会从我的主机下载我的数据库备份。它会生成一个当前大约有 800mb 的 .sql 文件。这个 .sql 文件包含 44 个表。

有什么方法可以通过一些软件将.sql文件与所有表分开,以便单独导出每个表?

所以,如果我必须在某个时候重置备份,我会按表进行,而不必对整个数据库进行。

【问题讨论】:

  • 是的,可以使用 MySQL Workbench 之类的东西。这允许您从转储文件中选择一个或一些表进行恢复。最重要的是它是免费的
  • 感谢您的帮助,这是另一种选择。但对于我的漂亮案例,我更喜欢@Delano zuurman 的解决方案。 BR

标签: mysql ssh


【解决方案1】:

之后我不会拆分它,如果您自己通过 ssh 访问服务器,您可以(并且在我看来应该)做这样的事情:

for table in `mysql -u [USER] -p[PASSWORD] -N -B -e 'show tables from [DATABASE]'`;
do
    mysqldump --skip-comments --compact -u [USER] -p[PASSWORD] [DATABASE] $table  > $table.sql 
    && tar -czvf $table.tar.gz $table && rm $table.sql
done;

应该为每个表生成一个文件。然后只需 .gz 将文件放入的任何目录,您就应该按照您想要的方式进行备份。

【讨论】:

  • 1) "对于mysql -u [my_user] -p [my_pw] -N -B -e 'show tables from [my_db]' 中的表;执行mysqldump --skip-cmets --compact -u [my_user] -p [my_pw] [my_db] $table > $table.sql 完成; " 2)“输入密码:my_pw”3)“错误1045(28000):用户'[my_user]'@'localhost'的访问被拒绝(使用密码:是)”!!我做错了什么?
  • 嗯,您使用的好像是不允许访问的用户,您是否尝试过验证用户名/密码组合?
  • 如果你可以输入密码并且它现在可以工作,那就意味着你在脚本中做错了,或者我写错了。那么密码现在有效吗?例如,您是否在 -p 和密码之间使用了空格?如果是这样,请删除空间。或尝试:-p'yourpassword'
  • 看看我的最新编辑。压缩后使用rm删除sql文件即可。
  • 亲爱的@Delano zuurman 100% 解决了!就是这样......非常感谢您的耐心等待。你帮了我很多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-19
  • 1970-01-01
  • 2011-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多