MySQL数据迁移

前言

在进行迁移时,源mysql的配置和目标mysql的配置应尽量保持一致

迁移所有数据库

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

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

目标端是刚安装好的mysql,默认就有上图中的4个库,源端比目标端多了一个dan库

在源端备份所有数据库

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

拷贝备份文件到目标端

在目标端还原所有数据库

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

-- 注意:
	当迁移所有数据库时,不需要提前在目标端创建好所有数据库

迁移某个数据库

源端所有数据库(引擎均为innodb)

源端备份要迁移的库

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

将文件迁移到目标服务器

// 在目标服务器上要提前将TA03这个数据库创建好,名称要和源的数据库名称相同

[root@mysql2 ying]# scp /home/ying/backup/bak_2018-01-05.sql.gz ying@192.168.111.111:/home/ying/backup 


'注意
	要在目标服务器上提前创建好该文件夹,并且调整该文件夹的权限,不能为root用户权限,
	scp是基于ssh的,而mysql默认是不允许root远程链接的,将文件夹权限改为wuchao这个用户
'

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

将备份来的文件解压,然后导入

[ying@redis01 ~]$ sudo gzip -d /home/ying/backup/bak_2018-01-05.sql.gz 
[sudo] password for ying: 
[ying@redis01 ~]$ mysql -u root -p TA03 < /home/ying/backup/bak_2018-01-05.sql
 Enter password: 
[ying@redis01 ~]$ 

目标数据库中查看

posted @ 2023-07-03 13:36  末兰岩  阅读(42)  评论(0编辑  收藏  举报