MySQL将远程服务器的数据库拷到本地

命令如下 :

mysqldump -h '119.11.10.15' -ufromuser -pfrompassword --opt --compress fromdatabase --skip-lock-tables | mysql -h localhost -ulocaluser -plocalpassword localdatabase

解释:

119.11.10.15 远程服务器名称

fromuser 远程数据库登录名

frompassword 远程数据库登录密码

fromdatabase远程数据库名(即:复制的源)

localhost 本地数据库名称

localuser 本地数据库登录名

localpassword 本地数据库登录密码

localdatabase 本地(即:复制的目的)

sql解释:

mysqldump 是mysql的一个专门用于拷贝操作的命令

–opt 操作的意思

–compress 压缩要传输的数据

–skip-lock 忽略锁住的表(加上这句能防止当表有外键时的报错

-tables 某数据库所有表

-h 服务器名称

-u 用户名(*后面无空格,直接加用户名)

-p 密码(*后面无空格,直接加密码,这是必须的)

注意:

-u、-p的后面没有空格,直接加用户名和密码!!!


另外不重复地把旧表复制到新表的命令:

(不会覆盖原有内容,会叠加在后面)

insert into table1 select * from table2 where not exists(select * from table1 where table1.user_id=table2.user_id and newtb.字段2=oldtb.字段2....);

PS:若id auto_increment+primary key无法插入,则在phpadmin下,把正表和副本的id去掉,复制,再把id加上.数据太多的时候必须在终端下移动.

相关阅读

添加新评论