环境准备

准备两台分别装有MySQL的服务器要求版本尽量一直

最好的搭配组合是主(Master)服务器的Mysql版本和从(Slave)服务器版本相同或者更低,主服务器的版本肯定不能高于从服务器版本。

节点角色分配

ip地址

主机名

角色

192.168.23.1

risen02

主备

192.168.23.3

risen03

主备

开始配置

验证MySQL是否可以正常登陆

节点:192.168.23.1,192.168.23.3

登陆risen02MySQL

f9e123a7bd3577b354cfe9f6ab6557d8.png

登陆risen03MySQL

b6b35b5cd318d15d923544db9ddca57d.png

分别创建同步账户并授权

节点:192.168.23.1,192.168.23.3

在risen02的MySQL执行命令

grant replication slave on *.* to 'risen'@'192.168.23.3' identified by '123456';

flush privileges;

在risen03的MySQL执行命令

grant replication slave on *.* to 'risen'@'192.168.23.2' identified by '123456';

flush privileges;

修改配置文件

节点:192.168.23.1,192.168.23.3

修改risen02的MySQL配置文件my.cnf,添加以下内容

[mysqld]

server-id = 1

log-bin=mysql-bin

binlog-do-db = test #重要

log-slave-updates

sync_binlog = 1

auto_increment_offset = 1

auto_increment_increment = 2

replicate-do-db = test # 重要

replicate-ignore-db = mysql,information_schema

修改risen03的MySQL配置文件my.cnf,添加以下内容

[mysqld]

server-id = 2

log-bin=mysql-bin

replicate-do-db = test

replicate-ignore-db = mysql,information_schema,performance_schema

binlog-do-db = test

binlog-ignore-db = mysql

log-slave-updates

sync_binlog = 1

auto_increment_offset = 2

auto_increment_increment = 2

参数说明

Server-id

ID值唯一的标识了复制群集中的主从服务器,因此它们必须各不相同。Master_id必须为1到232-1之间的一个正整数值,slave_id值必须为2到232-1之间的一个正整数值

Log-bin

表示打开binlog,打开该选项才可以通过I/O写到Slave的relay-log,也是可以进行replication的前提。

Binlog-do-db

表示需要记录二进制日志的数据库。如果有多个数据可以用逗号分隔,或者使用多个binlog-do-dg选项。

Binglog-ingore-db

表示不需要记录二进制日志的数据库,如果有多个数据库可用逗号分隔,或者使用多binglog-ignore-db选项。

Replicate-do-db

表示需要同步的数据库,如果有多个数据可用逗号分隔,或者使用多个replicate-do-db选项。

Replicate-ignore-db

表示不需要同步的数据库,如果有多个数据库可用逗号分隔,或者使用多个replicate-ignore-db选项。

Master-connect-retry

master-connect-retry=n表示从服务器与主服务器的连接没有成功,则等待n秒(s)后再进行管理方式(默认设置是60s)。如果从服务器存在mater.info文件,它将忽略些选项。

Log-slave-updates

配置从库上的更新操作是否写入二进制文件,如果这台从库,还要做其他从库的主库,那么就需要打这个参数,以便从库的从库能够进行日志同步

分别重启MySQL服务

节点:192.168.23.1,192.168.23.3

service mysql restart

分别查看节点状态

节点:192.168.23.1,192.168.23.3

risen02的MySQL的主节点

92c99a99af5bc2ce96639fb0815785ba.png

risen03的MySQL的主节点

7c0652c20b4a9f75cd6db8e480843018.png

!> 分别记下file和position两个选项

分别服务器上用change master to 指定同步位置(注意master_log_file和master_log_pos均是上面查询状态显示出来的,一定要填对)

risen02的MySQL执行命令

change master to master_host='192.168.23.3',master_user='risen',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;

60d7e9ed0b2a06841e4c1c128f60a610.png

risen03的MySQL执行命令

change master to master_host='192.168.23.2',master_user='risen',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;

7282d7d1685232e886faaa6c78755a19.png

分别重启从服务线程

start slave;

分别查看从节点状态

查看risen02从节点状态

f77a1950b046e11025c919a816e0f6d7.png

查看risen03从节点状态

1dc4939b6400d7017d1471f8c041a931.png

红色框中两个配置项分别都是YES,则证明搭建成功

结果验证

操作risen02验证risen03

在risen02的test库中新建表info

744ea5269aa20b53b71a93f569843fae.png

查看risen03:

a4438a701db3d360dc24c4f5912545d1.png

同样也出现risen03,说明同步成功

操作risen03验证risen02

进入risen03的test库中并插入一条数据到info表

38d424158c0f3a2706f83ee477f9d9ea.png

查看risen02中的info表是否存在risen03插入的数据

65a15a696b44ffdfe0e6b16c528e6114.png

存在,证明MySQL的双击热备到此搭建成功

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐