经常会遇到如此需求,需把A主机上的MySQL数据库所有迁移到B主机上,或者部分数据库,所以接下来将介绍迁移所有数据库和迁移单个数据库时的数据迁移步骤。

1 实验环境

A主机(源主机):

  • IP地址:192.168.0.191
  • 系统版本:CentOS 6.8
  • MySQL版本:5.5
  • 源主机有以下数据库
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | laucyun            |
    | mysql              |
    | performance_schema |
    +--------------------+
    4 rows in set (0.00 sec)

    查看数据库laucyun内容:

    mysql> show tables;
    +-------------------+
    | Tables_in_laucyun |
    +-------------------+
    | users             |
    +-------------------+
    1 row in set (0.00 sec)mysql> select * from users;
    +----+----------+----------+----------------+
    | id | username | password | email          |
    +----+----------+----------+----------------+
    |  1 | laucyun  | 123456   | liu@liuker.xyz |
    +----+----------+----------+----------------+
    1 row in set (0.00 sec)
    

    其中,数据库laucyun中有数据库表usersusers表中有一条记录。

B主机(目标主机):

  • IP地址:192.168.0.192
  • 系统版本:CentOS 6.8
  • MySQL版本:5.5
  • 目标主机有以下数据库:
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    +--------------------+
    3 rows in set (0.00 sec)

源主机比目标主机多一个名为laucyun的数据库。

OK,开始环境介绍完后,先介绍迁移所有数据。

2 迁移所有数据库

目前实验环境中,源主机比目标主机多一个名为laucyun的数据库。

在源主机备份所有数据库:

$ mysqldump -uroot -p --all-databases > /home/all_databases.bak

提示输入root用户的密码,备份文件信息如下:

$ ll
total 552
-rw-r--r-- 1 root root 561449 Dec 31 13:02 all_databases.bak

拷贝备份文件all_databases.bak到目标主机:

$ scp all_databases.bak root@192.168.0.192:/home/

在目标主机还原所有数据库:

$ mysql -uroot -p < /home/all_databases.bak

提示输入root用户的密码。

验证是否成功:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| laucyun            |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)mysql> use laucyun;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> show tables;
+-------------------+
| Tables_in_laucyun |
+-------------------+
| users             |
+-------------------+
1 row in set (0.00 sec)mysql> select * from users;
+----+----------+----------+----------------+
| id | username | password | email          |
+----+----------+----------+----------------+
|  1 | laucyun  | 123456   | liu@liuker.xyz |
+----+----------+----------+----------------+
1 row in set (0.00 sec)

由此可见,目标主机上已经备份成功了源主机中所有数据库。

注意:当迁移所有数据库时,不用提前在目标主机创建好所有数据库。

3 迁移某个数据库

目前实验环境中,源主机比目标主机多一个名为laucyun的数据库。

在源主机备份数据库laucyun

$ mysqldump -uroot -p laucyun > /home/laucyun.bak

提示输入root用户的密码,备份文件信息如下:

$ ll
total 4
-rw-r--r-- 1 root root 1982 Dec 31 13:52 laucyun.bak

拷贝备份文件laucyun.bak到目标主机:

$ scp laucyun.bak root@192.168.0.192:/home/

在目标主机中创建好数据库laucyun

mysql> CREATE DATABASE `laucyun` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

在目标主机还原数据库laucyun

$ mysql -uroot -p laucyun < /home/laucyun.bak

提示输入root用户的密码。

验证是否成功:

mysql> show tables;
+-------------------+
| Tables_in_laucyun |
+-------------------+
| users             |
+-------------------+
1 row in set (0.00 sec)mysql> select * from users;
+----+----------+----------+----------------+
| id | username | password | email          |
+----+----------+----------+----------------+
|  1 | laucyun  | 123456   | liu@liuker.xyz |
+----+----------+----------+----------------+
1 row in set (0.00 sec)

由此可见,目标主机上已经备份成功了源主机中数据库laucyun

注意:当迁移某个数据库时,需要提前在目标主机中创建好该数据库。

MySQL如何跨机器迁移数据?相关推荐

  1. redis跨服务器迁移数据

    redis跨服务器迁移数据 在此之前使用看有人用脚本做数库迁移,自己试了下,体验极差,各种问题. 现在发现了好用的方法.使用redis-port 来做,非常简单快捷 前提条件 拥有源redis服务器的 ...

  2. 从mysql向HBase+Phoenix迁移数据的心得总结

    * 转载请注明出处 - yosql473 - 格物致知,经世致用 mysql -> HBase + Phoenix 1.总体方案有哪些? 1)通过Sqoop直接从服务器(JDBC方式)抽取数据到 ...

  3. mysql分区跨机器_(转) mysql的分区技术 .

    一.概述 当 MySQL的总记录数超过了100万后,会出现性能的大幅度下降吗?答案是肯定的,但是,性能下降>的比率不一而同,要看系统的架构.应用程序.还有>包括索引.服务器硬件等多种因素而 ...

  4. rediscluster全局数据_redis迁移,从redis cluster集群迁移数据到另外一个redis cluster集群...

    redis迁移,redis集群迁移$ yum install automake libtool autoconf bzip2 -y $ git clone https://github.com/vip ...

  5. mysql 客户无感知迁移_亿级账户数据迁移,不用数据库工具还能怎么搞?

    原标题:亿级账户数据迁移,不用数据库工具还能怎么搞? 背景 在阿里巴巴内部"大中台,小前台"的组织和业务体制,使前线业务更加敏捷,赋能业务积极迎接未来挑战和机遇,在阿里大中台能力建 ...

  6. 从大数据量分库分表 MySQL 合并迁移数据到 TiDB

    如果分表数据总规模特别大(例如大于 1 TiB),并且允许 TiDB 集群在迁移期间无其他业务写入,那么你可以使用 TiDB Lightning 对分表数据进行快速合并导入,然后根据业务需要选择是否使 ...

  7. date oracle 表中_从 MySQL 迁移数据到 Oracle 中的全过程

    一.前言 这里记录一次将MySQL数据库中的表数据迁移到Oracle数据库中的全过程 ,使用工具 Navicat,版本 12.0.11 操作环境及所用工具: mysql5.7 oracle18c wi ...

  8. 自建Hive数据仓库跨版本迁移到阿里云Databricks数据洞察

    简介:客户在IDC或者公有云环境自建Hadoop集群构建数据仓库和分析系统,购买阿里云Databricks数据洞察集群之后,涉及到数仓数据和元数据的迁移以及Hive版本的订正更新. 直达最佳实践:[自 ...

  9. mysql游标表间数据迁移_MySQL存储过程--通过游标遍历和异常处理迁移数据到历史表...

    -- 大表数据迁移,每天凌晨1点到5点执行,执行间隔时间10分钟,迁移旧数据到历史表.DELIMITER $$ USE `dbx`$$ DROP PROCEDURE IF EXISTS `pro_xx ...

最新文章

  1. 创业公司如何实施敏捷开发(转载)
  2. PyTorch cat() 函数实现维度拼接
  3. 10、 HAVING:过滤分组
  4. 【蓝桥杯省赛】冲刺练习题【循环】倒计时【15】天
  5. Web框架——Flask系列之Flask中的特殊变量和方法(十九)
  6. Hadoop 副本存储策略的源码修改和设置
  7. Android Button常用属性
  8. spring springMvc spring-boot spring-cloud分别是什么
  9. 维修管理系统微信小程序部署流程
  10. Echarts的x,y网格线样式
  11. 汉堡式折叠html,3种超酷汉堡包菜单按钮变形动画特效
  12. 基于物联网的室内环境监测系统设计的背景
  13. 法语初级学习笔记-01-语音
  14. Linux应用开发5 信号(软中断,处理异步请求,进程间通讯)
  15. 关于证书(certificate)和公钥基础设施(PKI)的一切
  16. 如何申请邮箱号,两步轻松完成
  17. 黑马程序员--JavaJAVA 正则表达式 (超详细)
  18. 2018年10月训练记录(10.1~10.23)
  19. Android:应用程序未安装解决方法
  20. 微信小程序自带地图_小程序丨教你:如何打开小程序如何打开微信自带的地图(附源码)...

热门文章

  1. java公钥加密私钥解密过程_GPG加密解密过程
  2. 安装rlwrap 的简单方法
  3. ActionBarActivity设置全屏无标题
  4. Linux 系统下载网址
  5. 类中构造函数、析构函数与赋值函数的重写
  6. ./4.sh: No such file or directory
  7. html判断整数小数点后两位小数点,js控制input框只能输入数字和一位小数点且小数点后面只有两位小数...
  8. mysql jdbc驱动_JDBC认识与实践
  9. 打印机更换感光鼓单元k_干货,激光打印机常见故障维修方法总结
  10. Java多线程_1_Java内存模型_内存模型的3大特性