1.主从复制原理
MySQL 主从复制基于主服务器在二进制日志中跟踪所有对数据库的更改(新建/修改表、插入、更新、删除数据等)。每个从服务器从主服务器接收已经记录到其二进制日志保存的更新,以便从服务器可以对其数据拷贝执行相同的操作。
从服务器设置为复制主服务器的数据后,它连接主服务器并等待更新过程。如果从服务器失去与主服务器之间的连接,从服务器保持定期尝试连接,直到它能够继续帧听更新。由--master-connect-retry 选项控制重试间隔,默认为60秒。
MySQL 使用3个线程来执行复制功能,其中1个在主服务器上,另两个在从服务器上。
(1)当发出START SLAVE时,从服务器创建一个I/O线程,用来连接主服务器并让它发送记录在其二进制日志中的语句。
(2)主服务器创建一个线程将二进制日志中的内容发送到从服务器。该线程可以识别为主服务器上SHOW PROCESSLIST的输出中的Binlog Dump线程。
(3)从服务器I/O线程读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志。
(4)第3个线程是SQL线程,是从服务器创建用于读取中继日志并执行日志中包含的更新语句。
(5)有多个从服务器的主服务器为每个当前连接的从服务器创建一个线程;每个从服务器有自己的I/O和SQL线程。
2.主服务器配置
(1)环境:windows7 64位,MySQL5.1
(2)修改mysql的配置文件my.ini
添加:
#开启二进制日志
log-bin
#主服务器id号
server-id=15
#对指定的数据库记录二进制日志
binlog-do-db=RW_DB
(3)为从服务器添加mysql账户并配置权限
grant replication slave on *.* to 'replication'@'%' identified by '123456';
flush privileges;
授权完成后,可以进入mysql数据库,执行以下语句:
select Repl_slave_priv from user where user = 'replication';
查看值是否为Y。
(4)记录File 和 Position数据项的值
执行以下命令:show master status;
查看主服务器状态,记录File 及Position 数据项的值,在配置从服务器时会用到这两个值。
图-13.从服务器配置
(1)环境:windows7 32位,MySQL5.1
(2)修改mysql的配置文件my.ini
添加:
#从服务器id号
server-id=94
(3)重启MySQL
(4)设置参数
change master to
master_host = 'XX.XX.XX.15',
master_user = 'replication',
master_password = '123456',
master_log_file = 'ZX-201609262058-bin.000002',
master_log_pos = 106;
(5)连接主服务器
start slave;
(6)检查数据库查看相关参数
show slave status;
至此,MySQL的主从复制已配置完成,可以新建表,插入数据,修改和删除数据进行测试。
网友评论