一般数据库不大时,我们用Navicate,MysqlWorkBrench等工具,将数据库导出为.sql ,再导入,是没有问题的。
但有时候一个数据库导出来有200多M,可能需要半小时。这时我们就可以用命令导出,导入了。
A服务器上的数据库databaseA, 导出到,
B服务器上的数据库databaseB,
登录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;
再重新导入,即可。
建议参考:
---------- 招募未来大神 -----------------------
如果您有利他之心,乐于帮助他人,乐于分享如果您遇到php问题,百度且问了其他群之后仍没得到解答
欢迎加入,PHP技术问答群,QQ群:292626152
教学相长!帮助他人,自己也会得到提升!
为了珍惜每个人的宝贵时间,请大家不要闲聊!
愿我们互相帮助,共同进步!
加入时留言暗号,php,ajax,thinkphp,yii...