且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

linux下mysql数据的导出和导入(实用于大数据库)

更新时间:2022-03-28 02:29:30

   一般数据库不大时,我们用Navicate,MysqlWorkBrench等工具,将数据库导出为.sql ,再导入,是没有问题的。

  但有时候一个数据库导出来有200多M,可能需要半小时。这时我们就可以用命令导出,导入了。


  A服务器上的数据库databaseA, 导出到,

   B服务器上的数据库databaseB,


  1. 登录A服务器,

    进入到某目录下:比如:/data/mysqlbak/

    命令行输入:

    mysqldump -u userName -p  dabaseName  > fileName.sql

    ls -al

    能看到,3秒就生成了sql文件。是不是很快呢?


        导出数据库中的某个表的数据

    mysqldump -u userName -p  dabaseName tableName > fileName.sql 




   这时,你也可以通过ftp,把该文件下载来,再上传到B服务器。比较慢。。。

   也可以用scp传输。


 2.登录B服务器,

  进入到某目录下:比如:/data/mysqlbak/

  命令行输入:scp -P **** root@***.*****.**:/data/mysqlbak/fileName.sql ./

  ***是端口号,ip地址。注意P是大写。

  如果端口号是22,可以不写-P ****。


  如果是局域网,命令写为:

  scp root@192.168.1.22:/data/mysqlbak/fileName.sql

  

  然后会提示,输入密码后。就可以下载了。

  然后进入mysql:

  mysql -uroot -p 回车  输入密码

  use dabaseName;

  source /data/mysqlbak/fileName.sql


  如果B服务器是mysql在导入过程中,出现卡死的情况,不容易看出来,可能是,sql_mode的限制,

  这时可修改vi /etc/my.cnf,

  添加 sql_mode =ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION


重启mysql,

命令为service mysqld restart;

再重新导入,即可。



建议参考:http://www.cnblogs.com/hurry-up/p/6829694.html




     本文转自phpervip 51CTO博客,原文链接:http://blog.51cto.com/phpervip/1973017,如需转载请自行联系原作者