mysql8版本数据迁移

  原来的云服务器到期,想把应用和数据库迁移到一个新的云服务器。应用迁移简单,jar复制过去就完事了,mysql已经跑了不少数据在库了,因此需要数据复制。因为新的云服务器没有开通外网权限,没法ping通ip,所以数据迁移做不到从旧服务器直接复制到新服务器,只能先找个跳板。而这个跳板,自然就是我的windows本机了。

  方案很简单,首先在老服务器上把数据库test上的所有数据dump下来,放到本机一个目录上;然后在新服务器上安全好mysql8(老服务器的mysql版本也是8),然后创建同名数据库test;接着把本地dump数据上传到新服务器;最后在新服务器上执行dump命令。

  以下是方案实现:

  1、老服务器dump数据库test的数据:

[root@centos ~]# mysqldump -uroot -p --databases test > dump.sql
Enter password:

  通过scp把放到本地(scp命令参见通过SCP实现Linux服务器和本地Win10机器的文件上传下载):

C:\Users\wulf>D:

D:\>cd download

D:\download>scp root@100.111.11.10:/home/mysql/dump.sql .
root@100.111.11.10's password:

 

  2、在等待dump文件下载的时候,去新服务器安装好myslq:

[root@centos ~ home]# yum install mysql-server

  接着启动mysql8:

[root@centos ~]# service mysqld start

  初始密码为空,直接回车登录mysql后修改密码,创建跟老数据库同名的test:

[root@centos ~]# mysql -uroot -p 

mysql
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root123@';
mysql> create database test;
Query OK, 1 row affected (0.03 sec)

 

  3、把本地dump.sql文件上传到新服务器:

D:\download>scp ./dump.sql root@100.111.11.10:/home/mysql/
root@100.111.11.10's password:

  又是漫长的等待。

  

  4、执行新服务器的数据重放:

mysql> use test;
Database changed
mysql> source /home/mysql/dump.sql
Query OK, 3667 rows affected (0.09 sec)
Records: 3667  Duplicates: 0  Warnings: 0

  mysql执行脚本比ftp的磁盘io快多了,很快数据就迁移结束。

  可以查一下确认数据是否都导入了:

mysql> select count(*) from t_mwsorder;
+----------+
| count(*) |
+----------+
|   629379 |
+----------+
1 row in set (0.00 sec)

  数据量对的上就说明迁移完成了。

 

  

posted on 2021-05-12 00:50  不想下火车的人  阅读(944)  评论(0编辑  收藏  举报

导航