系统是 centos 7
以前用 tar -zcvf xxx.tar.gz 打包备份的 mysql 数据库。现在换到别的服务器都无法使用了
都提示: (1146, "Table 'aabbcc2020.cc_topic' doesn't exist")
现在知道原来也需要打抱上面的 ibdata1 才可以
那现在我以前打包的 mysql 数据库还有救吗?
ps: 大家都是怎么备份 centos 上的 mysql 数据库的。
1
CallMeReznov 2019-03-23 20:39:39 +08:00
mysqldump
楼主这个莽的方式有点无从说起吧 是什么导致你作出你之前的操作的? |
2
wd 2019-03-23 20:49:30 +08:00 via iPhone
你这不是提示表么有么 没打包全数据?
|
3
Seahurt 2019-03-23 20:49:30 +08:00 via Android
用的 django+pgsql,备份也是直接打包目录……没出过问题
|
4
msg7086 2019-03-23 20:49:31 +08:00
当然 mysqldump。谁告诉你打包文件是备份手段的……而且还不打全? data 都不打你备份个啥。
|
5
python30 OP @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 的那些数据库还有救不? |
6
msg7086 2019-03-23 21:02:09 +08:00
@python30 InnoDB 的表空间数据是存在 ibdata 里的。不打包 ibdata 就等于没打包数据。表结构是在的,数据你没打的话上哪找去。
|
7
python30 OP @msg7086
那是没救了 如果 上面我说的 dataabcxx(数据库 1) dataabcxx22(数据库 2) 两个要备份。要分别 备份 dataabcxx(数据库 1) +ibdata dataabcxx22(数据库 2) +ibdata 这样? 如果要把这些数据同时转移到另一台同类的服务器。 那上面的 ibdata 只能有一个。 这两台服务器上的 ibdata 要怎么合并呢? |
8
yghack 2019-03-23 21:14:36 +08:00
ibdata 无法合并吧?
用 mysqldump 把,或者使用 mydumper,Innobackupex,这样不需要 ibdata 文件 |
9
msg7086 2019-03-23 22:03:17 +08:00
|
10
jhdxr 2019-03-23 22:08:30 +08:00
补充 @msg7086 的回答,以前 myisam 的确拷贝文件备份就行,但 innodb 一般不推荐通过拷贝文件来进行备份。虽然可以通过配置吧数据存成每个表单独的(这样就可以存在对应的库的文件夹下),但是依然不推荐通过拷贝文件来备份。
|
11
hzwjz 2019-03-23 23:02:43 +08:00 via Android
django 有自己的 dumpdata,干嘛不用呢?以前我也用这个方式,用 Django 自己的 dumpdata/loaddata 不好吗
|
12
claysec 2019-03-23 23:17:42 +08:00
最简单的用 mysqldump 再不济用工具辅助 Navicat Premium 吧
|
13
aru 2019-03-24 15:03:51 +08:00
没戏!
当年我年少无知出过同样的错,将一个 wiki 搞丢了 |