mysql数据迁移

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

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

迁移前,源端有以下数据库:

  1. mysql> show databases;  
  2. +--------------------+  
  3. Database           |  
  4. +--------------------+  
  5. | information_schema |  
  6. | dan                |  
  7. | mysql              |  
  8. | performance_schema |  
  9. | test               |  
  10. +--------------------+  
  11. rows in set (0.00 sec)  

迁移前,目标端的有以下数据库:

  1. mysql> show databases;  
  2. +--------------------+  
  3. Database           |  
  4. +--------------------+  
  5. | information_schema |  
  6. | mysql              |  
  7. | performance_schema |  
  8. | test               |  
  9. +--------------------+  
  10. 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

拷贝备份文件到目标端

  1. [root@target_pc databasefile]# scp all_databases_20150325.bak 192.168.8.225:/backup/databasefile/  
  2. The authenticity of host '192.168.8.225 (192.168.8.225)' can't be established.  
  3. RSA key fingerprint is ed:ee:f6:e6:f5:3b:76:ed:18:fa:2d:eb:73:83:0e:13.  
  4. Are you sure you want to continue connecting (yes/no)? yes  
  5. Warning: Permanently added '192.168.8.225' (RSA) to the list of known hosts.  
  6. root@192.168.8.225's password:   
  7. all_databases_20150325.bak                                                                                                                                      100%  598KB 598.3KB/s   00:00      
  8. [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                |
复制代码
posted @ 2019-05-29 10:40  星空之主  阅读(208)  评论(0编辑  收藏  举报