文档章节

mysql一主多从同步配置

阿dai
 阿dai
发布于 2017/09/02 12:56
字数 574
阅读 68
收藏 0

mysql一主多从同步配置

架构

一主多从和一主一从的原理是一样的:

graph LR
master-->slave1
master-->slave2
master-->slave...

环境

master:192.168.101

MYSQL版本:5.1.48-community-log

slave1:192.168.2.182

MYSQL版本:5.1.48-community-log

slave2:192.168.2.111

MYSQL版本:5.1.48-community-log

so...1 vs 2。

配置my.cnf

master:

[root@mysql101 ~]# vi /etc/my.cnf
[mysqld]
datadir = /data/mysql
socket = /tmp/mysql.sock
server-id = 1
log-bin=mysql-bin
binlog-do-db=YYY //需要同步的数据库
binlog-ignore-db=mysql //被忽略的数据库
binlog-ignore-db=information-schema //被忽略的数据库  

完成以上配置后重启mysql服务。

创建同步用户:

mysql> grant replication slave on *.* to 'affairlog'@'192.168.2.182' identified by 'pwd123';

//在slave1上登陆成功

mysql> grant replication slave on *.* to 'affairlog'@'192.168.2.111' identified by 'pwd123';

//在slave2上登陆成功

mysql> show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000087
Position: 106
Binlog_Do_DB: YYY
Binlog_Ignore_DB: mysql,information-schema
1 row in set (0.00 sec)

slave:

[root@mysql182 ~]# vi /etc/my.cnf
[mysqld]
datadir = /data/mysql
socket = /tmp/mysql.sock
server-id=182
master-host=192.168.3.101
master-user= affairlog
master-password=pwd123
master-port=3306
master-connect-retry=60
replicate-do-db=YYY //同步的数据库
replicate-ignore-db=mysql //被忽略的数据库
replicate-ignore-db=information-schema //被忽略的数据库

完成配置后重启mysql服务。
修改slave2上的配置文件my.cnf,和上面类似,只是把server-id改下,为了方便,我都用了相应的ip某位,so,slave2上我设置的server-id是111。

同步配置

进入两个slave机中的mysql。

mysql>start slave;

mysql>show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

如果两个slave中的Slave_IO_Running、Slave_SQL_Running状态均为Yes则表明设置成功。

常见问题

错误1:

Slave_IO_Running: No或者Slave_SQL_Running: No

解决办法:

先停止slave:

mysql> slave stop;

master:

mysql> show master status\G;

*************************** 1. row ***************************
File: mysql-bin.000087
Position: 1845
Binlog_Do_DB: YYY
Binlog_Ignore_DB: mysql,information-schema
1 row in set (0.00 sec)

到slave手动同步:

mysql>change master to
>master_host='192.168.3.101',
>master_user='affairlog',
>master_password='pwd123',
>master_log_file='mysql-bin.000087',
>master_log_pos=1845;

启动slave服务:

mysql> slave start;

再次查看Slave_IO_Running、Slave_SQL_Running状态,为Yes则表明设置成功。

错误2:

ERROR 1198 (HY000): This operation cannot be performed with a running slave; run STOP SLAVE first

解决办法

停掉slave服务

mysql> slave stop;

重置slave服务

mysql> reset stop;

再执行一次change命令

mysql>change master to
>master_host='192.168.3.101',
>master_user='affairlog',
>master_password='pwd123',
>master_log_file='mysql-bin.000087',
>master_log_pos=1845;

启动slave服务

mysql> slave start;

再次查看Slave_IO_Running、Slave_SQL_Running状态,为Yes则表明设置成功。

PS:
Slave_IO_Running:连接到主库,并读取主库的日志到本地,生成本地日志文件
Slave_SQL_Running:读取本地日志文件,并执行日志里的SQL命令。

本文转载自:http://blog.sina.com.cn/s/blog_4c197d4201017qjs.html

共有 人打赏支持
阿dai
粉丝 60
博文 203
码字总数 266159
作品 0
昌平
运维

暂无文章

idea新建springCloud项目(5)- 订单服务

1.创建订单api,如下: 2.创建订单实现逻辑 3.新建订单、订单商品表 -- 订单 create table `order_master` ( `order_id` varchar(32) not null, `buyer_name` varchar(32) not null comment......

monroeCode
20分钟前
1
1
游戏开发经验谈(二):对战类全球服游戏的设计与实现

上篇文章《游戏开发经验谈(一):游戏架构里隐藏的五个坑及其应对方案》,我们主要讲解了游戏架构设计当中隐藏的一些坑及其应对方案,错过的小伙伴可以回溯之前的内容。本期内容,将会重点介...

UCloudTech
30分钟前
0
0
Mysql基本语法

一.联合主键 drop table CONTENT_AND_CATALOG;CREATE TABLE `tobebetter`.`CONTENT_AND_CATALOG` ( `ID` VARCHAR(120) NOT NULL , `CONTENT_ID` VARCHAR(120) , `CA......

我是菜鸟我骄傲
31分钟前
0
0
179. centos7 安装mariadb

1. centos7 中安装mariadb 1.1 执行安装 centos7 自带了mariadb yum -y install mariadb mariadb-server 1.2 启动mariadb systemctl start mariadb 1.3 设置开机启动 systemctl enable maria......

Lucky_Me
38分钟前
0
0
【AI实战】动手训练自己的目标检测模型(YOLO篇)

在前面的文章中,已经介绍了基于SSD使用自己的数据训练目标检测模型(见文章:手把手教你训练自己的目标检测模型),本文将基于另一个目标检测模型YOLO,介绍如何使用自己的数据进行训练。 ...

雪饼
45分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部