mysql同步表到本地_sql 同步远程数据库(表)到本地

一)在同一个数据库服务器上面进行数据表间的数据导入导出:

1. 如果表tb1和tb2的结构是完全一样的,则使用以下的命令就可以将表tb1中的数据导入到表tb2中:

insert into db2.tb2 select * from  db1.tb1

2. 如果表tb1和tb2只有部分字段是相同的,要实现将tb1中的部分字段导入到tb2中相对应的相同字段中,则使用以下命令:

insert into db2.tb2(字段1,字段2,字段3……) select  字段1‘,字段2’,字段3‘,……  from db1.tb1;

二)但是要实现将远程数据库中数据表tb1的数据导入到本地数据库数据表tb2中,并没有太好的方法像以上例子所示的在本地直接使用SQL语句就能搞定。这时就要使用到数据库(表)的导出,导入。即将远程的数据库(表)导出到本地文件中,然后再将该数据库(表)导入(还原)到本地数据库中。这些方法多应用于数据库的备份和还原中

1.远程数据库(表)导出到本地数据库(表)文件

(1)导出数据库

mysqldump -h192.168.1.1 -uroot -p123456 --databases mydb > mydb.bak;      //将192.168.1.1主机上的mydb数据库导出到本地的mydb.bak文件中

(mysqldump  -uroot -p123456 --databases mydb1 > mydb1.bak;                        //将本地MySQL服务器上的mydb1数据库导出到本地的mydb1.bak文件中)

(2)导出数据表

mysqldump -h192.168.1.1 -uroot -p123456 mydb tb1 > tb1.bak;                       //将192.168.1.1主机上的mydb数据库的tb1数据表导出到本地的tb1.bak文件中

(mysqldump  -uroot -p123456 mydb1 tb2 > tb2.bak;                                      //将本地主机上的mydb1数据库的tb2数据表导出到本地的tb2.bak文件中)

2. 导入数据库(表)

(1)导入数据库

在本地数据库中创建相对应导出的数据库mydb同名的数据库:

mysql> create database mydb;

然后退出数据库,再使用以下的 命令导入数据库文件mydb.bak到本地数据库mydb中:

mysql -uroot -p123456 mydb < /root/data/mydb.bak;

或者进入mysql中,使用sourc指令完成数据库导入,如下:

mysql> source  /root/data/mydb.bak;                                          // /root/data/mydb.bak是远程数据库mydb导出文件的本地存放位置

(2)导入数据表

在本地数据库中创建相对应导出的数据库mydb同名的数据库:

mysql> create database mydb;

然后在mysql中使用source指令来完成数据表的导入,如下:

mysql> source /root/data/tb1.bak;                                               // /root/data/tb1.bak是远程数据表tb1导出文件的本地存放位置

三) 导出表记录到文件

mysql -hxxx.xxx.xxx.xxx -uroot -pxxxxxx -D WHOIS -e "select domain from domainInfo where queryFlag = '2' or queryFlag = '3'" >  /data/dump/overdue

注意:在数据库(表)的导入、导出过程中,视数据库(表)的大小,需要一定的时间开销,请耐性等候……

四)导入、导出数据表中的数据

1. 导出表数据到文件中:

mysql -uroot -p123456 --default-character-set=utf8

use guanjia;

select * from driver into outfile '/tmp/a.txt';

(select * from crawlDocs order by DocCrawlTime desc limit 2000 into outfile '/tmp/weixinData' FIELDS TERMINATED BY ',';)

一般最好是导出到/tmp目录下,因为这样mysql用户也可以写入。

2. 表数据导入到数据表中:

mysql -uroot -p123456 --default-character-set=utf8

use guanjia;

load data infile '/tmp/a.txt' into table test CHARACTER SET utf8;

(load data infile '/tmp/weiData' into table crawlDocs CHARACTER SET utf8 FIELDS TERMINATED BY ',';)

如果导入时出现类似 ERROR 29 (HY000): File '/tmp/a.txt' not found (Errcode: 13)的错误,则很可能是因为mysql用户没有权限访问该文件,

则使用 chown mysql:mysql /tmp/a.txt 将该文件的所属设为mysql用户,再次执行上面的命令则一般可以完成导入。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现MySQL数据库远程同步,可以使用MySQL的主从复制(Master-Slave Replication)功能。这个功能允许将一个MySQL服务器(主服务器)的数据同步到另一个MySQL服务器(从服务器)上。 以下是一些基本的步骤: 1. 在主服务器上,确保已启用二进制日志(binary logging)。可以通过在主服务器的配置文件(如my.cnf)中添加以下行来启用二进制日志: ``` log-bin=mysql-bin ``` 2. 在主服务器上创建一个专门用于复制的用户,并为该用户分配适当的权限: ``` CREATE USER 'replication_user'@'slave_ip' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_ip'; ``` 其中,'slave_ip'是从服务器的IP地址,'password'是该用户的密码。 3. 在主服务器上执行以下命令,获取当前二进制日志文件及位置的信息: ``` SHOW MASTER STATUS; ``` 记录下输出结果中的"File"和"Position"值,稍后会在从服务器配置中使用。 4. 在从服务器上,编辑配置文件(如my.cnf)并添加以下行: ``` server-id = 2 relay-log = mysql-relay-bin log-bin = mysql-bin ``` 其中,server-id是从服务器的唯一标识,可以任意选择一个值。 5. 重启从服务器使配置生效。 6. 在从服务器上执行以下命令,设置从服务器连接到主服务器: ``` CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='master_log_file', MASTER_LOG_POS=master_log_pos; ``` 其中,'master_ip'是主服务器的IP地址,'replication_user'和'password'是在步骤2中创建的复制用户的用户名和密码,'master_log_file'和'master_log_pos'是在步骤3中记录的主服务器的二进制日志文件和位置。 7. 启动从服务器的复制进程: ``` START SLAVE; ``` 现在,从服务器应该已经开始从主服务器同步数据了。可以使用以下命令来检查复制状态: ``` SHOW SLAVE STATUS; ``` 在输出结果中的"Slave_IO_Running"和"Slave_SQL_Running"字段应该显示"YES",示复制正在运行。 请注意,这只是MySQL主从复制的基本步骤,实际使用时可能需要根据具体情况进行适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值