MySQL实现主从复制功能
![](/uploads/allimg/200930/5d09d50110f9488512740.png)
环境说明
centos7.3、MySQL5.7
前言
MySQL安置参照 此前的文章https://www.jianshu.com/p/452aa99c7476有讲解。
根本概念
MySQL 内建的复制功效是构建大型,高机能利用程序的根基。将 MySQL 的 数亿分布到到多个系统上去,这种分布的机制,是通过将 MySQL 的某一台主机的数据复制到其它主机( Slave )上,并从新施行一遍来实现的。复制历程中一个效劳器充当效劳器,而一个或多个其它效劳器充当从效劳器。主效劳器将更新写入二进制日志,并保护文件的一个索引以跟踪日志轮回。这些日志可以记载发送到从效劳器的更新。当一个从效劳器连接主效劳器时,它通知主效劳器从效劳器在日志中读取的最后一次成功更新的位置,从效劳器接收从那时起发生的任何更新,然后封闭等等主效劳器通知新的更新。请留意当你停止复制时,所有对复制中的表的更新必需在主效劳器上停止。不然,你必需要当心,以幸免会员对主效劳器上的表停止的更新与对效劳器上的表所停止的更新之间的冲突
主从复制实现
一、修改主(master)效劳器
假如是依照我写的文章安置的MySQL,那么my.cnf配置文件在/etc/名目下。假如不在,可以通过whereis命令搜索下 在my.cnf配置文件下增加如下配置
server_id=1 #指定MySQL的id log-bin=mysql-bin #开启二进制日志文件
二、创立复制账号
在主效劳器中施行该命令(这里同意了所有的地址拜访,倡议设定成从效劳器的地址)
GRANT REPLICATION SLAVE ON *.* to 'replication'@'%' identified by 'Abc123...';
三、修改从(slave)效劳器
server_id=2 log-bin=mysql-bin binlog_do_db=db_test#表示要同步的数据库
说明: binlog-ignore-db=test 表示不一样步 test 数据库 binlog_do_db=db_test#表示要同步的数据库
四、重新启动MySQL
主效劳器和从效劳器都重新启动
service mysqld restart
五、查看主效劳器状态
show master status
结果如下:
这里有些信息需要记载下来,在配置从效劳器时候需要用到 # 六、配置从效劳器(连接 Master 效劳器)
change master to master_host='192.168.74.129',master_user='replication',master_password='Abc123...',master_log_file='mysql-bin.000001',master_log_pos=2041;
master_host是主效劳器的ip master_port=3306(这里没有配置,默许3306) master_user:Master 效劳器授权会员,也就是 Master 前面创立的阿谁会员 master_password:Master 效劳器授权会员对应的密码 master_log_file:Master binlog 文件名 master_log_pos:Master binlog 文件中的 Postion 值 关于position值,这里做一个说明:假如主效劳器已经是有许多数据了的,那就先需要备份主效劳器的数据到从效劳器中,然后再使用命令show master status记载需要开端同步的位置。 # 七、开端复制 在从效劳器中施行
start slave
休止的命令是:stop slave; # 八、查看从效劳器状态
show slave status\G;
上图圈起来的两个结果为yes表示主从复制配置成功了。 假如配置失败,可以去MySQL的日志文件中查看失败信息,也可以通过上述命令查看一个简要的错误信息:
这是我刚刚配置主从效劳器时报的错,主要缘由是MySQL效劳器的server的UUID冲突了,缘由是我的从效劳器是从主效劳器上复制过去的。到/var/lib/mysql/auto.cnf上修改即可。 #验证主从结果 此刻的状态:
下面创建一个表,看看可否可以同步过去:#查看从效劳器
可以看到已经同步过去了同步过去
更多MySQL相关技术文章,请拜访MySQL教程栏目停止学习!
以上就是MySQL实现主从复制功效的具体内容,更多请关注百分百源码网其它相关文章!