从远程Linux服务的MySQL数据库dump数据


今天接了新的任务需要从远程服务器把MySQL数据库的数据导入到本地。这真是有点赶鸭子上架的感觉。因为之前几乎没有接触过mysql,而且MySQL是部署在Linux服务器上,更主要的是MySQL数据库服务器不能直接通过公网IP访问,需要先登录一台Linux服务器作为踏板在另一台Linux服务器上操作。

既然任务来了,不能不做。在网上搜了一大圈,终于有了眉目。大致步骤如下:

1.登录到远程Linux服务器

远程服务器可以用SSH协议来登录,开始使用PUTTY,可是发现连接后不能粘贴密码,服务器密码不下20位,而且什么字符都有,一个个输显然太累了,后来问了对Linux比较熟的同事,推荐我用SSH Secure Shell Client。一用,果然好用。

2.从远程服务器登录到mysql数据库服务器

远程服务器是Linux系统,要从它登录到别的Linux系统只能使用ssh了。

#ssh [mysql服务器IP]

之后会让输入密码,因为是在SSH Secure Shell Client里操作,可以直接粘贴密码。

3.将mysql数据库dump出来

由于不知道mysql数据库的名称,首先用mysql命令登录,show databases查看数据库。

mysqldump -u用户名 -p密码 数据库名 >dump文件的路径和名称

4.将dump文件由mysql服务器拷贝到远程服务器上

scp [mysql服务器IP]:dump文件 .

由于远程服务器和mysql服务器都是用root登录,执行命令后,会要求输入mysql服务器的root的密码。输入密码后,dump文件会拷贝到root的家里边。

5.压缩dump文件

dump出的文件有1G多,尝试直接下载,速度最快时只有100多K,要下载好几个小时。先压缩一下吧。

bzip2 -zv dump文件

压缩用了不到5分钟,压缩有100多M,这样下载起来就省时间了。压缩后是bz2文件,未压缩的文件不见了。www.britepic.org原来bzip2还有个-k选项,可以保留压缩前的文件。

6.从远程服务器拷贝文件到本地

这步就简单了,SSH Secure Shell Client软件提供了一个“SSH Secure File Transfer Client”,布局跟cuteftp有点类似。

相关内容