1、MYSQL复制过程分为三步
(1)master将改变记录到二进制日志(binary log),这些记录过程叫做为二进制日志事件,binary log events;
(2)slave将master的binary log events拷贝到它的中继日志(relay log)。
(3)slave重做中继日志中的事件,将改变应用到自己的数据库中。MYSQL复制是异步的且串行化的。
2、复制的基本原则
(1)每个slave只有一个master
(2)每个slave只能有一个唯一的服务器ID
(3)每个master可以有多个slave
3、mysql一主一从
(1)mysql版本要一致
(2)主机修改my.cnf的[mysqld]下的配置文件。
- (必须要写)主服务器唯一ID——
server-id=1 - 必须启用二进制日志文件:
log-bin=自己本地路径/mysqlbin
如:log-bin=D:/ProgramSoftware/MySQL/data/mysqlbin
- 启用错误日志
log-err=自己本地路径/mysqlerr
如:log-bin=D:/ProgramSoftware/MySQL/data/mysqlerr
- 根目录(可选)
basedir=自己本地路径
如:basedir=D:/ProgramSoftware/MySQL
- 临时目录(可选)
tmpdir=自己本地路径
如:tmpdir=D:/ProgramSoftware/MySQL
- 数据目录(可选)
datadir=自己本地路径/data
如:datadir=D:/ProgramSoftware/MySQL/data
read-only=0,主机,读写都可以- 设置不要复制的数据库:
binlog-ignore=mysql(忽略的表名) - 设置需要复制的数据库:
binlog-do-db=需要复制的主数据库名字
(3)从机的配置
(4)主机和从机需要关闭防火墙
(5)在主机上建立账户并授权slave - 执行授权信息:
#zhangsan用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为mysql。
说明一下192.168.0.%(从机数据库ip),这个配置是指明zhangsan用户所在服务器,这里%是通配符,
表示192.168.0.0-192.168.0.255的Server都可以以zhangsan用户登陆主服务器。当然你也可以指定固定Ip。
GRANT REPLICATION SLAVE ON *.* TO 'zhangsan'@'192.168.0.%' IDENTIFIED BY 'mysql';
flush privileges;刷新命令- 执行
show master status

file :二进制日志文件
position: file日志文件的341行的位置开始主从复制
binlog_do_db: 需要复制的数据库
binlog_ignore_db:忽略复制的数据库
(6)从机执行命令:
CHANGE MASTER TO
MASTER_HOST='192.168.106.1(主机ip)',MASTER_USER='replication',MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.具体数字(show master status里面的File)',
MASTER_LOG_POS=106(show master status里面的position);
(7)执行 start slave
(8)执行show master status,当slave_IO_Running:yes,slave_SQL_Running:yes说明配置成功。

MySQL主从复制配置指南
本文详细介绍MySQL主从复制的三步过程,包括二进制日志、中继日志和事件重做。阐述复制基本原则及一主一从配置步骤,涉及版本一致性、配置文件调整、账户授权、防火墙关闭等关键环节。

被折叠的 条评论
为什么被折叠?



