1. 命令行方式
可以通过命令 mysqldump 进行数据库迁移。mysqldump 命令默认会导出结构和数据,如果只是单纯只导出结构的情况,可以添加 --no-data 参数
1.1 导出数据库
# 假如导出名为「test」的数据库
mysqldump -uroot -p --host=127.0.0.1 --port=3306 --databases test > /tmp/test.sql
# 只导出「test」数据结构
mysqldump -uroot -p --host=127.0.0.1 --port=3306 --no-data --databases test > /tmp/test.sql
1.2 导入数据库
导入前,需要「test」数据库必须已经存在
# 导入「test」数据库
mysql -u username -p test < /tmp/test.sql
2. 工具方式
这里使用「Navicat」举例,打开IDE,菜单栏中「工具」选项,可以选择需要操作的选项,比如同步数据结构
点击比对,工具会进行两个数据库的差异,也可以根据自己的需求进行表或视图的勾选
点击下一步,会给出待执行的 SQL,点击开始,即可同步数据机构
3. 物理迁移
这种方式是将 Mysql 的物理文件复制到目标服务器上,适用于数据库非常大的情况,因为这样可以减少数据传输所需的时间。需要注意的是,源服务器与目标服务器 Mysql 的版本需要一致。
3.1 停止 Mysql 服务
3.2 拷贝源数据文件和日志文件到目标服务器目录
3.3 启 Mysql 服务
cd /opt/mysql/mysql-5.7.29/bin
mysqld --defaults-file=/data/mysqldata/my.cnf --user=mysql &
3.4 导入数据
# 导入表空间
alter table import tablespace;
4. 其他方式
还有其他很多方式,比如使用 Mysql 迁移工具,例如 MySQL Workbench、mysldbcopy等工具。
还可以通过 Mysql binlog 进行数据迁移,这种方式是在不停服的情况下进行。
以上就是一些常见的数据库迁移方式,具体选择哪个方式需要根据实际情况进行。建议在迁移之前,做好数据库备份。迁移工作完成后,一定要检查数据的完整性和准确性,如果发现问题,可以根据需要进行调整或数据回滚。