-
复制的基本原理:slave会从master读取binlog(二进制日志文件)来进行数据同步
- master将改变记录到二进制日志(binary log)。这些记录的过程叫做二进制日志事件,binary log events;
- slave 将 master 的binary log events拷贝到它的中继日志(relay log)
-
slace 重做中继日志中的事件,将改变应用到自己的数据库中。MySQL复制是异步的,并且是串行化的。
如下图:
-
复制的基本原则
- 每个slave 只有一个master
- 每个slave 只能有一个唯一的服务器ID
- 每个master 可以有多个salve
-
主从复制的常见配置
- MySQL版本一致且后台以服务运行,主从都配置在[mysqld]节点下,都是小写,两台机器可以ping的通
- 主数据库配置:
- (1)server-id=1 (主服务器唯一id,可以自己设置) 必须配置
- (2)log-bin=mysql-bin (必须启用二进制日志) 必须配置
- (3)log-err=/MySQL安装目录/data/mysqlerr (启用错误日志) 可选配置
- (4)basedir=/MySQL安装目录 (配置根目录) 可选配置
- (5)tmpdir=/MySQL安装目录 (临时目录) 可选配置
- (6)datadir=/MySQL安装目录/data (数据目录) 可选配置
- (7)read-only=0 (读写都可以) 可选配置
- (8)binlog-ignore-db=mysql (设置不要复制的数据库) 可选配置
- (9)binlog-do-db=需要复制的主数据库的名字 (设置需要复制的数据库) 可选配置
- 从数据库配置:
- (1)server-id=2 (从服务器唯一id,可以自己设置) 必须配置
- (2)log-bin=mysql-bin (启用二进制日志) 可选配置
配置完成以后,重启MySQL服务器,并关闭防火墙
-
在主机上建立账户并授权slave
- 命令:
grant replication salve on *.* to 'user1'@'192.168.10.11' identified by '123456'
:建立user1的用户,密码为123456,并授权复制的功能给192.168.10.11的从机服务器。 - 执行
flush privileges
命令来刷新; - 执行
show master status
查看主机状态,可以看到file 和 position 的值(从position位置开始读取file文件进行复制)
- 命令:
-
在从机上配置需要复制的主机
- 执行命令
change master to master_host='192.168.10.1' , master_user='user1' , master_password='123456' ,master_log_file='上一步的file' , master_log_pos = 上一步的position;
- 执行命令
start slave;
启动从服务器的复制功能 - 执行
show slaver sataus
如果 slaver_io_running=yes 并且 slaver_sql_running=yes则说明配置成功,如果有一个不是yes,则配置失败 -
stop slaver;
命令停止从服务器的复制功能
- 执行命令
MySQL高级第六篇(主从复制)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1、复制概述: MySQL内建的复制功能是构建大型,高性能应用程序的基础。将mysql的数据分布到多个系统上去,这...