mysql双主加从库_mysql主从复制配置,mysql双主双从

mysql主从复制配置,mysql双主双从

================================

©Copyright 蕃薯耀 2020-10-27

https://www.cnblogs.com/fanshuyao/

一、修改配置文件

Linux修改/etc/my.cnf文件,Windows修改my.ini文件,下面以Linux为例

主库配置:

# =====主从复制 主库 开始=====

# 设置需要同步的数据库

binlog-do-db=rw_slave

#屏蔽系统库同步

binlog-ignore-db=mysql

binlog-ignore-db=information_schema

binlog-ignore-db=performance_schema

binlog-ignore-db=test

# =====双主双从 开始 =====

# 两个主库互为从库

#不加下面的配置,存在某一个从库不会同步数据,只有2主库、1个从库同步

# 该从库是否写入二进制日志。如果需要成为多主则可启用。只读可以不需要

log-slave-updates=1

# 该服务器自增列的初始值。(与 Master2,...... MasterN 的不同点),如主1的值为1,则主2的值为2

auto-increment-offset=1

# 该服务器自增列增量。其默认值是1, 取值范围是1 .. 65535

auto-increment-increment=2

=====双主双从 结束=====

#=====主从复制 主库 结束=====

从库配置:

# =====主从复制 从库 开始=====relay-log=mysql-relay

#设置需要同步的数据库

replicate_do_db=rw_slave

#屏蔽系统库同步

replicate_ignore_db=mysql

replicate_ignore_db=information_schema

replicate_ignore_db=performance_schema

replicate_ignore_db=test

#replicate_wild_ignore_table=mysql.%#replicate_wild_ignore_table=information_schema.%#replicate_wild_ignore_table=performance_schema.%#replicate_wild_ignore_table=test.%#=====主从复制 从库 结束=====

从库需要注意,server-id默认是1,从库需要修改成2或者其它的,不能设置成一样。

二、主从复制配置

1、主库设置

设置同步的账号和密码:都设置成rwuser,然后刷新权限

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON*.* TO 'rwuser'@'%' IDENTIFIED BY 'rwuser';

--刷新权限

FLUSH PRIVILEGES;

确认位点,记录下文件名以及位点,在从库设置时需要用到

SHOW MASTER STATUS;

-- mysql-bin.000004

-- 533

132fa73a0b2c1f3a2d5c23f1dc1b4647.png

2、从库设置

先停止同步:

STOP SLAVE;

重置从库(一般可以省略,也可以重置)

解决: Slave failed to initialize relay log info structure from the repository

RESET SLAVE;

配置同步的主库地址和账号密码,以及读取的文件和位置(就是上面SHOW MASTER STATUS;的数据)

-- 修改同步的信息

-- 其中 MASTER_LOG_FILE,MASTER_LOG_POS为SHOW MASTER STATUS;中的file和Position

CHANGE MASTER TO MASTER_HOST='192.168.132.11',MASTER_USER='rwuser',MASTER_PASSWORD='rwuser',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=533;

启动从库同步

START SLAVE;

查看从库的状态:

-- slave_io_running,slave_sql_running都为Yes时,表示同步设置成功,如果不为Yes,请检查error.log排查异常。

SHOW SLAVE STATUS;

如果出现下面的错误,就是主、从库的server-id设置成相同的,修改从库的server-id,然后重启mysql(service mysql restart)。

Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).

可以通过mysql查询server-id

SHOW VARIABLES LIKE 'server_id';

或者通过命令直接修改:

此处的数值和my.cnf里设置的一样就行

SET GLOBAL server_id=12;

需要注意的是:

Linux一般有端口限制,可以开放相应的端口,如3306

或者直接关闭防火墙:

查看防火墙状态:

firewall-cmd --state

关闭防火墙

systemctl stop firewalld.service

禁止防火墙开机启动

systemctl disable firewalld.service

三、创建数据库,测试数据同步

1、创建的数据库,就是同步的数据库:rw_slave,此时会将数据库同步到从库

CREATE DATABASE rw_slave;

2、使用数据库:

use rw_slave;

3、创建表,此时会将表同步到从库

CREATE TABLErw_table(

idBIGINT PRIMARY KEYAUTO_INCREMENT,

`name`VARCHAR(20) NOT NULL,

ageINT,

data_typeINT);

4、插入数据,此时会将数据同步到从库

INSERT INTO rw_table(`name`, age, data_type) VALUES (@@hostname, 20, 4);

5、主库和从库都查询表有没有数据,验证数据是否同步,一般不会有问题

SELECT * FROM rw_table;

================================

©Copyright 蕃薯耀 2020-10-27

https://www.cnblogs.com/fanshuyao/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值