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 ~]$