在MySQL中,大表同步或者数据复制,可以使用mysqldump工具导出,然后使用mysql source命令导入。该方法的前提是能够访问到MySQL所在的机器,导出的SQL文件需要上传到目标机器。具体方法参考MySQL单表同步数据这篇文章.
但是当使用云服务RDS时,往往无法访问到目标主机,这时候还可以使用如下方式:
首先使用mysqldump导出表(表结构和数据)。然后在导出数据的机器或者其他机器上,使用下面的命令:
# mysql -h hostname -P port-D mysql-schema-name -u username --default-character-set=gbk -p < /opt/data/dump.sql
Enter password:
各参数含义同mysql:
- h: 主机名
- P: 端口号(大写的P)
- D: 数据库schema名称
- u: 用户名
- p: 密码
注意如果是中文,需要指定字符集,否则数据导入之后会出现乱码:
--default-character-set=gb2312
当然,也可以使用商业软件Navicat的复制粘贴功能直接复制表。但是当表过大的时候也是很吃力。