mysql 使用mysqldump命令 从远程服务器复制表数据到目标机器的操作记录

关于mysqldump更多详细内容请参考:https://www.cnblogs.com/chenmh/p/5300370.html

背景:

服务器A上部署了新的项目,并且在此服务器建了新的数据表(新的数据表中没有数据),所以需要自己导入一下数据(因为某些原因吧)。因为之前在测试服务器上(叫它服务器B)已经导入过了相应的数据,所以就可以把服务器B数据库里的数据导入到服务器A的数据库中。

目标:

把服务器B数据库中的数据 导入到 服务器A的数据库中(B-->A)。

思路:

使用mysqldump命令做导出和导入(其实我想要的并不是备份,只是把服务器B中的数据导出,然后在服务器A中做insert)。

一般情况下,在做数据备份或者导出数据的时候,总会遇到一些问题,所以,建议是,在数据表数据较少的时候,直接远程连接并备份(或导出)数据是一个不错的选择,表大小大约在20~30M左右。如果要备份整个数据库,就去掉TABLENAME,直接使用DATABASE,本地的数据库备份的话,就不用写端口信息,去掉 -h 参数和远程IP地址就好。

命令示例:

mysqldump -uUSERNAME -p -h 192.168.0.1 DATABASE TABLENAME > /localpath/datafile.sql

但大多数情况下需要操作的的数据量比较大,数据库远程连接资源一般都会有一定的连接限制,常常会遇到数据导出到一半就自动断开。这样的话就考虑在远程数据库服务器的环境下导出备份脚本,然后再到目标服务器中执行脚本,这样的操作效率很高。

操作记录:

  1. 连接到服务器B,在服务器B中使用语句生成sql脚本文件
    mysqldump -uroot -p database table_1 > hotarea_sql/table_1.sql
    

    这样就生成了数据表table_1的数据备份脚本。

  2. 使用scp命令,将文件传输到服务器A
    scp table_1.sql xxx.xxx.xxx.xxx:~/

     

  3. 连接到服务器A,并登陆到mysql数据库
    mysql>use [database];
    mysql>set names utf8; --设置传输编码,避免中文乱码
    mysql>source [~/table_1.sql]; -- source 文件路径

    使用这个source命令执行sql脚本效率可以说是相当快了,四万多条数据的insert,还没眨眼就执行完了。

  4. 最后可以使用sql验证一下数据是否全部insert成功:select count(*) from table1;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章