本文主要介绍单台服务器MySQL数据库多实例的主从同步,一般常规做主从复制主从服务器在不同的机器上,并且监听端口均为默认的3306端口。
一、环境介绍
操作系统:CentOS 6.5
数据库版本:MySQL 5.5.32
主库主机名称:mysql-master(172.18.10.222:3306)
从库主机名称:mysql-slave(172.18.10.222:3307)
二、主从同步原理介绍
简单描述主从复制原理:
1、在Slave服务器命令行执行start slave,开启主从复制开关
2、此时Slave服务器的I/O线程会通过在master服务器授权的复制权限用户请求连接master服务器,并请求从指定位置的binlog日志之后发送binlog日志内容
3、Master服务器接收到来自Slave服务器的I/O请求后,Master服务器上的I/O线程根据Slave请求的位置之后读取binlog日志内容,返回给发送请求的Slave服务器端的I/O线程,返回的信息除了binlog日志,还包括本次返回日志内容之后新的binlog文件名称及在binlog中下一个指定更新位置
4、Slave服务器端接收到Master服务端返回的日志相关信息后,由本端的I/O线程依次将binlog信息写入relaylog文件的最末端,并且将新的binlog文件名称及位置信息记录到master-info文件中,以便下次向Master发送请求信息时通知Master服务端从哪个日志文件的哪个位置返回内容
5、Slave服务器端的SQL线程实时监控本地relaylog日志新增日志内容后及时解析relaylog日志并且在本端数据库服务器顺序执行与Master服务端相同的SQL脚本, 达到与Master服务端实时同步的结果
三、配置主从同步
3.1 安装数据库并配置多实例
具体安装配置步骤请参照 配置MySQL数据库多实例
3.2 主库开启binlog并配置server-id
[mysqld] log-bin = /data/3306/mysql-bin server-id = 1