mysql 返回的查询结果为空 (即零行)._Mysql数据同步(单向)

2023-05-16

首先准备两台服务器:

主:192.168.1.88

从:192.168.1.78

创建需要同步的数据库,比如为sync_db,将这个数据库各拷贝到78和88一份

G4QQP36U9EF9N2AZPO.jpg

修改主服务器88上的配置,找到my.cnf文件,若不知道位置,可以使用

#find / -name “my.cnf”找到

#vi /etc/my.cnf

添加:

#88 master server

server-id=100088

log-bin

binlog_do_db=sync_db

解释:

1)      server-id:标识,唯一,值范围在:1至2^23-1

2)      log-bin:配置是否在数据库有变动时写二进制日志,在mysql的的数据目录下回生成

mysqld-bin.000001的文件。

可在mysql命令行通过show variables like ‘%bin’;查看是否开启,ON表示已开启。

3)      binlog_do_db:同步的数据库

修改从服务器78的配置,在my.cnf中添加

#23 slave server

server-id=100078

master-host=192.168.1.88

master-user=root

master-password=123456

master-port=3306

master-connect-retry=60

replicate-do-table=sync_db.c_user

replicate-do-table=sync_db.c_citys

解释:

1)      master-host, master-user, master-password, master-port分别为主服务器的主机IP,用户,密码,端口

2)      master-connect-retry为:尝试连接的最大时间,单位为秒

3)      replicate-do-table为:同步的表,也可以使用replicate-do-db=sync_db同步整个数据库

重启主服务器和从服务器

#service mysqld restart

主服务器数据库目录下会生成mysqld-bin.index和mysqld-bin.000001文件

mysqld-bin.000001为主服务器操作的记录,包括sql语句等

从服务器数据库目录会生成:

master.info

relay-log.info

mysql-bin.index

mysql-bin.000001

mysqld-relay-bin.index

mysqld-relay-bin.000001

测试同步

更改主服务器88上的数据

insert into c_user(name,sex,age,address) values(‘zhangsan’,’1′,20,’beijing’);

可看到从服务器上也同时插入了一条数据

查看主从服务器同步状态

主服务器

mysql>show master status

2.jpg

从服务器

3.jpg

解释:

1)  Slave_IO_Running和Slave_SQL_Running的值均为Yes时为同步开启;

2)  Last_Errno和Last_Error是错误信息的提示(如果有错误)

故障修复:

若发现从服务器数据中断,可使用change重新定位同步点,如下:

stop slave; # MySQL 返回的查询结果为空 (即零行)。

CHANGE MASTER TO

MASTER_HOST=’192.168.1.88′,

MASTER_LOG_FILE=’mysqld-bin.000043′,

MASTER_LOG_POS=464512808;# MySQL 返回的查询结果为空 (即零行)。

start slave;# MySQL 返回的查询结果为空 (即零行)。

MASTER_LOG_FILE和MASTER_LOG_POS为主服务器上的同步二进制文件同步点

可通过show master status查看

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql 返回的查询结果为空 (即零行)._Mysql数据同步(单向) 的相关文章

随机推荐