一般数据库不大时,我们用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


 

----------  招募未来大神 -----------------------

如果您有利他之心,乐于帮助他人,乐于分享
如果您遇到php问题,百度且问了其他群之后仍没得到解答

欢迎加入,PHP技术问答群,QQ群:292626152

教学相长!帮助他人,自己也会得到提升!

为了珍惜每个人的宝贵时间,请大家不要闲聊!

愿我们互相帮助,共同进步!

加入时留言暗号,php,ajax,thinkphp,yii...