django+ mysql 以前用 tar -zcvf xxx.tar.gz 打包备份的 mysql 数据库。现在换到别的服务器都无法使用了

2019-03-23 20:06:29 +08:00
 python30

系统是 centos 7

以前用 tar -zcvf xxx.tar.gz 打包备份的 mysql 数据库。现在换到别的服务器都无法使用了

都提示: (1146, "Table 'aabbcc2020.cc_topic' doesn't exist")

现在知道原来也需要打抱上面的 ibdata1 才可以

那现在我以前打包的 mysql 数据库还有救吗?

ps: 大家都是怎么备份 centos 上的 mysql 数据库的。

2088 次点击
所在节点    Python
13 条回复
CallMeReznov
2019-03-23 20:39:39 +08:00
mysqldump

楼主这个莽的方式有点无从说起吧
是什么导致你作出你之前的操作的?
wd
2019-03-23 20:49:30 +08:00
你这不是提示表么有么 没打包全数据?
Seahurt
2019-03-23 20:49:30 +08:00
用的 django+pgsql,备份也是直接打包目录……没出过问题
msg7086
2019-03-23 20:49:31 +08:00
当然 mysqldump。谁告诉你打包文件是备份手段的……而且还不打全? data 都不打你备份个啥。
python30
2019-03-23 20:57:48 +08:00
@CallMeReznov
@msg7086
@wd

/var/lib/mysql 下面
有 ibdata1 ib_logfile0 ib_logfile1 mysql dataabcxx(数据库 1) dataabcxx22(数据库 2) 等文件

我备份的时候。只打包了 dataabcxx(数据库 1) dataabcxx22(数据库 2) 这两个数据库

其它的都没打包,我以前用 centos 默认安装的 mysql 版本的的时候 用的 utf8 编码 这样打包可以

现在我 的 mysql 版本换成了 5.6 版本的 utf8mb4 再这样打包就不行了。

前些天我也是刚知道 需要打包 ibdata1 这个一起好像。

只是现在想问问 以前没打包 ibdata1 的那些数据库还有救不?
msg7086
2019-03-23 21:02:09 +08:00
@python30 InnoDB 的表空间数据是存在 ibdata 里的。不打包 ibdata 就等于没打包数据。表结构是在的,数据你没打的话上哪找去。
python30
2019-03-23 21:07:12 +08:00
@msg7086
那是没救了

如果 上面我说的 dataabcxx(数据库 1) dataabcxx22(数据库 2) 两个要备份。要分别 备份 dataabcxx(数据库 1) +ibdata dataabcxx22(数据库 2) +ibdata 这样?

如果要把这些数据同时转移到另一台同类的服务器。
那上面的 ibdata 只能有一个。 这两台服务器上的 ibdata 要怎么合并呢?
yghack
2019-03-23 21:14:36 +08:00
ibdata 无法合并吧?
用 mysqldump 把,或者使用 mydumper,Innobackupex,这样不需要 ibdata 文件
msg7086
2019-03-23 22:03:17 +08:00
@python30 ibdata 本来就不能单独备份。老老实实用 mysqldump 不好吗?一定要坚持走歪门邪道?

文件复制只能用于整个数据库服务器完整迁移的情况。
jhdxr
2019-03-23 22:08:30 +08:00
补充 @msg7086 的回答,以前 myisam 的确拷贝文件备份就行,但 innodb 一般不推荐通过拷贝文件来进行备份。虽然可以通过配置吧数据存成每个表单独的(这样就可以存在对应的库的文件夹下),但是依然不推荐通过拷贝文件来备份。
hzwjz
2019-03-23 23:02:43 +08:00
django 有自己的 dumpdata,干嘛不用呢?以前我也用这个方式,用 Django 自己的 dumpdata/loaddata 不好吗
claysec
2019-03-23 23:17:42 +08:00
最简单的用 mysqldump 再不济用工具辅助 Navicat Premium 吧
aru
2019-03-24 15:03:51 +08:00
没戏!
当年我年少无知出过同样的错,将一个 wiki 搞丢了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/547813

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX