V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
python30
V2EX  ›  Python

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

  •  
  •   python30 · 2019-03-23 20:06:29 +08:00 · 2197 次点击
    这是一个创建于 2107 天前的主题,其中的信息可能已经有所发展或是发生改变。

    系统是 centos 7

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

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

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

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

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

    13 条回复    2019-03-24 15:03:51 +08:00
    CallMeReznov
        1
    CallMeReznov  
       2019-03-23 20:39:39 +08:00
    mysqldump

    楼主这个莽的方式有点无从说起吧
    是什么导致你作出你之前的操作的?
    wd
        2
    wd  
       2019-03-23 20:49:30 +08:00 via iPhone
    你这不是提示表么有么 没打包全数据?
    Seahurt
        3
    Seahurt  
       2019-03-23 20:49:30 +08:00 via Android
    用的 django+pgsql,备份也是直接打包目录……没出过问题
    msg7086
        4
    msg7086  
       2019-03-23 20:49:31 +08:00
    当然 mysqldump。谁告诉你打包文件是备份手段的……而且还不打全? data 都不打你备份个啥。
    python30
        5
    python30  
    OP
       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
        6
    msg7086  
       2019-03-23 21:02:09 +08:00
    @python30 InnoDB 的表空间数据是存在 ibdata 里的。不打包 ibdata 就等于没打包数据。表结构是在的,数据你没打的话上哪找去。
    python30
        7
    python30  
    OP
       2019-03-23 21:07:12 +08:00
    @msg7086
    那是没救了

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

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

    文件复制只能用于整个数据库服务器完整迁移的情况。
    jhdxr
        10
    jhdxr  
       2019-03-23 22:08:30 +08:00
    补充 @msg7086 的回答,以前 myisam 的确拷贝文件备份就行,但 innodb 一般不推荐通过拷贝文件来进行备份。虽然可以通过配置吧数据存成每个表单独的(这样就可以存在对应的库的文件夹下),但是依然不推荐通过拷贝文件来备份。
    hzwjz
        11
    hzwjz  
       2019-03-23 23:02:43 +08:00 via Android
    django 有自己的 dumpdata,干嘛不用呢?以前我也用这个方式,用 Django 自己的 dumpdata/loaddata 不好吗
    claysec
        12
    claysec  
       2019-03-23 23:17:42 +08:00
    最简单的用 mysqldump 再不济用工具辅助 Navicat Premium 吧
    aru
        13
    aru  
       2019-03-24 15:03:51 +08:00
    没戏!
    当年我年少无知出过同样的错,将一个 wiki 搞丢了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1022 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:33 · PVG 03:33 · LAX 11:33 · JFK 14:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.