zoukankan      html  css  js  c++  java
  • Mysql备份和恢复

    在做迁移的时候,源mysql的配置和目标mysql的配置尽量要是一样的,不一样的没有测过。。。可按照下面的方法自行测试

    一、迁移所有数据库 (这部分比较简单,就摘抄了一下),主要看第二节
    迁移前,源端有以下数据库:

    mysql> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | dan |
    | mysql |
    | performance_schema |
    | test |
    +--------------------+
    5 rows in set (0.00 sec)
    迁移前,目标端的有以下数据库:

    mysql> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | mysql |
    | performance_schema |
    | test |
    +--------------------+
    4 rows in set (0.01 sec)

    源端比目标端多一个dan数据库。

    --目标端是刚安装好的mysql,默认就有这4个数据库。

    在源端备份所有数据库:指令

    [root@target_pc databasefile]# mysqldump -u root -p --all-databases > /backup/databasefile/all_databases_20150325.bak

    拷贝备份文件到目标端

    [root@target_pc databasefile]# scp all_databases_20150325.bak 192.168.8.225:/backup/databasefile/
    The authenticity of host '192.168.8.225 (192.168.8.225)' can't be established.
    RSA key fingerprint is ed:ee:f6:e6:f5:3b:76:ed:18:fa:2d:eb:73:83:0e:13.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.8.225' (RSA) to the list of known hosts.
    root@192.168.8.225's password:
    all_databases_20150325.bak 100% 598KB 598.3KB/s 00:00
    [root@target_pc databasefile]#
    在目标端还原所有数据库

    [root@source_pc databasefile]# mysql -u root -p < all_databases_20150325.bak

    Enter password:

    自行查看数据迁移结果

    当迁移所有数据库时,不用提前在目标端创建好所有数据库。

    二、迁移某个数据库
    源端的所有数据库:(引擎都是用的innodb)

    mysql> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | ERP01 |
    | HS |
    | TA02 |
    | TA03 #迁移这一个,里面是含有数据的 |
    | db1 |
    | fundlx |
    | mysql |
    | performance_schema |
    | test |
    | test1 |
    | xzszm_2_data |
    | xzszm_data |
    +--------------------+

    在源端先备份需要迁移的这个数据库:

    1.在源端创建一个文件夹:/home/backup/
    2.执行指令:[root@mysql2 wuchao]# mysqldump -uroot -p -B -F -R -x --master-data=2 TA03 | gzip > /home/wuchao/backup/bak_$(date +%F).sql.gz
    查看:

    [root@mysql2 wuchao]# ls /home/wuchao/backup/
    bak_2018-01-05.sql.gz #文件存在了

    然后将文件迁移到目标服务器:

    [root@mysql2 wuchao]# scp /home/wuchao/backup/bak_2018-01-05.sql.gz wuchao@192.168.111.111:/home/wuchao/backup #注意要在目标服务器上提前创建好该文件夹,并且调整该文件夹的权限,不能为root用户权限,因为scp是基于ssh的,而mysql默认是
    不允许root远程链接的,将文件夹权限改为wuchao这个用户

    wuchao@192.168.111.111's password: #填写密码 目标服务器
    bak_2018-01-05.sql.gz #生成文件
    复制代码

    在目标服务器上要提前将TA03这个数据库创建,注意名称要和源的数据库名称相同,只需要创建这个数据库,不需要其他的操作

    然后查看创建成功:

    mysql> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | TA03 #创建好了 |
    | mysql |
    | performance_schema |
    | test |
    +--------------------+
    5 rows in set (0.00 sec)

    mysql> use TA03;
    最后将备份来的文件解压,然后导入:

    [wuchao@redis01 ~]$ sudo gzip -d /home/wuchao/backup/bak_2018-01-05.sql.gz
    [sudo] password for wuchao:
    [wuchao@redis01 ~]$ mysql -u root -p TA03 < /home/wuchao/backup/bak_2018-01-05.sql
    Enter password:
    [wuchao@redis01 ~]$
    再到目标数据库中查看:数据迁移成功

    mysql> show tables;
    +-----------------------------------------+
    | Tables_in_TA03 |
    +-----------------------------------------+
    | TA03_allholiday |
    | TA03_clearingprograminformation |
    | TA03_clearingprogramtype |

  • 相关阅读:
    0基础培训Web前端2个月实习一个月4000?
    amazon kindle和kindle阅读
    手动双面打印
    一分价钱一分货
    【转】cocos2d-x 开发中使用的一些工具
    怎么做网线,网线水晶头接法和线序(图文详解)
    schedule
    Match+Faq
    【转】以XML文件方式保存用户数据——2013-08-25 22
    【转】针对iOS VS. Android开发游戏的优劣——2013-08-25 17
  • 原文地址:https://www.cnblogs.com/Nayears/p/12107706.html
Copyright © 2011-2022 走看看