数据库迁移全记录

前言:

1)A服务器(mysql版5.5)上的数据库文件是放在系统盘的(心塞),配置mysql的时候千万要改数据库存放路径,系统盘的空间才20G,目前买了一台新的数据库服务器,只做数据处理,所以要迁移到新的服务器上。

2)目标服务器也是阿里云的ECS(mysql版本5.7),所以想直接通过内网复制把数据库的存放目录整体迁移,可是移过去后却是有部分表打不开,不知道为啥,为了没有mysql版本兼容等问题,还是走老套路了,目前

以下是实际操作过程:

在迁移之前要先把原服务器的Nginx暂停(mysql停了,数据就导不出来了,所以改成暂停Nginx)

一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):

1、导出数据和表结构

为了防止有数据写入,先把服务器Nginx暂停

mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql

#/usr/local/mysql/bin/   mysqldump -uroot -p abc > abc.sql

[root@iZ94i3b6byzZ ~]# mysqldump -uroot -p apiservice > /home/apiservice.sql
Enter password: 


敲回车后会提示输入密码

2、只导出表结构

mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql

#/usr/local/mysql/bin/   mysqldump -uroot -p -d abc > abc.sql

注:/usr/local/mysql/bin/  --->  mysql的data目录

二、将导出来的sql文件传输到目标数据库服务器

1)查看下这个文件有多大

[root@iZ94i3b6byzZ home]# ll -lh
total 3.7G
-rw-r--r-- 1 root root 3.7G Dec 24 14:16 apiservice.sql

太大了,如果通过外网下载,在上传的话,太费时间了。

2)通过阿里云内网传输,速度可以达到100M/s以上,我这边测试是这个速度

切换到B服务器上,输入如下命令

scp -r root@10.45.177.154:/home/apiservice.sql /data/
执行后会提示输入A服务器的密码,成功即启动传输

如果端口号不是默认的端口号,则需要指定端口号

#ssh: connect to host 10.29.59.56 port 22: Connection refused
#如果是非22端口,则需要指定端口号
scp -P 4600 root@10.29.59.56:/hotdata/97jiayou.sql /data/ 



用时2分钟

3)在B服务器上将刚刚传输过来的sql文件导入到数据库中

a)需要先建立一个数据库

我是用Navicat建立的,就不截图了

b)在B服务器上登录mysql

[root@hotdata data]# mysql -uroot -p
Enter password: 

然后进入命令界面

c)导入到刚刚建立的数据库中

方法一:

1)选择数据库

mysql>use apiservice;
2 )设置数据库编码

mysql>set names utf8;
3 )导入数据(注意 sql 文件的路径)

mysql>source /home/apiservice.sql;

方法二:

mysql -u用户名 -p密码 数据库名 数据库名.sql

[root@hotdata mysql]# mysql -uroot -p apiservice < /data/apiservice.sql 
Enter password: 
 

强烈建议使用第二种方法导入。




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值