环境操作系统版本:CentOS764位MySQL版本:mysql5.6.33节点1IP:192.168.1.205主机名:edu-mysql-01节点2IP:192.168.1.206主机名:edu-mysql-02
MySQL主从复制官方文档:http://dev.mysql.com/doc/refman/5.6/en/replication.html
注意:1>主从服务器操作系统版本和位数要保持一致2>Master和Slave数据库的版本要一致3>Master和Slave数据库中的数据要一致
配置配置之前先参考《MySQL5.7安装与配置(YUM)》安装好MySQL(注意本文演示的是5.6版本,需要修改文章中的yum源为5.6)
1、安全配置1>防火墙添加mysql通信端口(默认为3306)
shell>vim/etc/sysconfig/iptables-AINPUT-mstate--stateNEW-mtcp-ptcp--dport3306-jACCEPTshell>service?iptablesrestart?shell>vim/etc/sysconfig/iptables-AINPUT-mstate--stateNEW-mtcp-ptcp--dport3306-jACCEPTshell>service?iptablesrestart?或关闭防火墙
shell>serviceiptablesstop1shell>serviceiptablesstop2>关闭selinux
shell>vi/etc/selinux/configSELINUX=disabledshell>vi/etc/selinux/configSELINUX=disabled将SELINUX的值修改为disabled
2.节点1配置(192.168.1.205)2.1添加数据同步配置shell>vim/etc/my.cnf1shell>vim/etc/my.cnf在[mysqld]中增加以下配置项:
复制过滤:不需要备份的数据库(MySQL库一般不同步)binlog-ignore-db=mysql为每个session分配的内存,在事务过程中用来存储二进制日志的缓存binlog_cache_size=1M二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。expire_logs_days=7跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。?如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致slave_skip_errors=1062log_slave_updates表示slave将复制事件写进自己的二进制日志log_slave_updates=1自增因子(每次加2)auto_increment_offset=1??#自增偏移(从1开始),单数
2.2Master配置登录到mysqlshell>mysql-uroot-p?刷新授权表信息mysql>flushprivileges;#查看binlog文件的position(偏移)和File(日志文件)的值,从机上需要用到mysql>showmasterstatus;+----------------------+----------+--------------+------------------+-------------------+|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|Executed_Gtid_Set|+----------------------+----------+--------------+------------------+-------------------+|edu-mysql-bin.000001|???120|???|mysql??|?|+----------------------+----------+--------------+------------------+-------------------+1rowinset(0.00sec)
2.3Slave配置master_log_file和master_log_pos:在206上运行showmasterstatus;命令执行结果对应File和Position字段的值mysql>changemastertomaster_host='192.168.1.206',master_user='repl',master_password='root123456',master_port=3306,master_log_file='edu-mysql-bin.000001',master_log_pos=439,master_connect_retry=30;省略其它配置。。。
由于此时从节点还没有启动,Slave_IO_State的值为空,Slave_IO_Running和Slave_SQL_Running线程为No表示也没有运行。
2.4启动Slave注意:要在节点2上创建同步帐户后再启动,否则会报连不上master错误
此时再查看slave节点的状态mysql>showslavestatus\G;***************************1.row***************************Slave_IO_State:Waitingformastertosendevent?Master_Host:192.168.1.206?Master_User:repl?Master_Port:3306Connect_Retry:30???Master_Log_File:edu-mysql-bin.000001?Read_Master_Log_Pos:439Relay_Log_File:edu-mysql-relay-bin.000002Relay_Log_Pos:287Relay_Master_Log_File:edu-mysql-bin.000001???Slave_IO_Running:Yes??Slave_SQL_Running:Yes???Replicate_Do_DB:??#...省略其它配置
3.节点2配置(192.168.1.206)3.1添加数据同步配置shell>vim/etc/my.cnf1在[mysqld]中增加以下配置项:
server_id=206binlog-ignore-db=mysqllog-bin=edu-mysql-binbinlog_cache_size=1Mbinlog_format=mixedexpire_logs_days=7slave_skip_errors=1062relay_log=edu-mysql-relay-binlog_slave_updates=1#ID自增从2开始,双数auto_increment_increment=2auto_increment_offset=2
3.2Master配置登录到mysqlshell>mysql-uroot-p?刷新授权表信息mysql>flushprivileges;#查看binlog文件的position(偏移)和File(日志文件)的值,从机上需要用到mysql>showmasterstatus;+----------------------+----------+--------------+------------------+-------------------+|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|Executed_Gtid_Set|+----------------------+----------+--------------+------------------+-------------------+|edu-mysql-bin.000001|???439|???|mysql??|?|+----------------------+----------+--------------+------------------+-------------------+1rowinset(0.00sec)
时可以启动节点1(205)的slave服务
3.3Slave配置...省略其它配置
3.4、启动Slaveshell>startslave;QueryOK,0rowsaffected(0.01sec)mysql>showslavestatus\G;***************************1.row***************************Slave_IO_State:Waitingformastertosendevent?Master_Host:192.168.1.205?Master_User:repl?Master_Port:3306Connect_Retry:30???Master_Log_File:edu-mysql-bin.000001?Read_Master_Log_Pos:439Relay_Log_File:edu-mysql-relay-bin.000002Relay_Log_Pos:287Relay_Master_Log_File:edu-mysql-bin.000001???Slave_IO_Running:Yes??Slave_SQL_Running:Yes???Replicate_Do_DB:???...省略其它配置

环境操作系统版本:CentOS764位MySQL版本:mysql5.6.33节点1IP:192.168.1.205主机名:edu-mysql-01节点2IP:192.168.1.206主机名:edu-mysql-02
MySQL主从复制官方文档:http://dev.mysql.com/doc/refman/5.6/en/replication.html
注意:1>主从服务器操作系统版本和位数要保持一致2>Master和Slave数据库的版本要一致3>Master和Slave数据库中的数据要一致
配置配置之前先参考《MySQL5.7安装与配置(YUM)》安装好MySQL(注意本文演示的是5.6版本,需要修改文章中的yum源为5.6)
1、安全配置1>防火墙添加mysql通信端口(默认为3306)
shell>vim/etc/sysconfig/iptables-AINPUT-mstate--stateNEW-mtcp-ptcp--dport3306-jACCEPTshell>service?iptablesrestart?
shell>serviceiptablesstop12>关闭selinux
shell>vi/etc/selinux/configSELINUX=disabled12将SELINUX的值修改为disabled
2.节点1配置(192.168.1.205)2.1添加数据同步配置shell>vim/etc/my.cnf1在[mysqld]中增加以下配置项:
复制过滤:不需要备份的数据库(MySQL库一般不同步)binlog-ignore-db=mysql为每个session分配的内存,在事务过程中用来存储二进制日志的缓存binlog_cache_size=1M二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。expire_logs_days=7跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。?如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致slave_skip_errors=1062log_slave_updates表示slave将复制事件写进自己的二进制日志log_slave_updates=1自增因子(每次加2)auto_increment_offset=1??#自增偏移(从1开始),单数
2.2Master配置登录到mysqlshell>mysql-uroot-p?刷新授权表信息mysql>flushprivileges;#查看binlog文件的position(偏移)和File(日志文件)的值,从机上需要用到mysql>showmasterstatus;+----------------------+----------+--------------+------------------+-------------------+|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|Executed_Gtid_Set|+----------------------+----------+--------------+------------------+-------------------+|edu-mysql-bin.000001|???120|???|mysql??|?|+----------------------+----------+--------------+------------------+-------------------+1rowinset(0.00sec)
2.3Slave配置master_log_file和master_log_pos:在206上运行showmasterstatus;命令执行结果对应File和Position字段的值mysql>changemastertomaster_host='192.168.1.206',master_user='repl',master_password='root123456',master_port=3306,master_log_file='edu-mysql-bin.000001',master_log_pos=439,master_connect_retry=30;省略其它配置。。。
由于此时从节点还没有启动,Slave_IO_State的值为空,Slave_IO_Running和Slave_SQL_Running线程为No表示也没有运行。
2.4启动Slave注意:要在节点2上创建同步帐户后再启动,否则会报连不上master错误
此时再查看slave节点的状态mysql>showslavestatus\G;***************************1.row***************************Slave_IO_State:Waitingformastertosendevent?Master_Host:192.168.1.206?Master_User:repl?Master_Port:3306Connect_Retry:30???Master_Log_File:edu-mysql-bin.000001?Read_Master_Log_Pos:439Relay_Log_File:edu-mysql-relay-bin.000002Relay_Log_Pos:287Relay_Master_Log_File:edu-mysql-bin.000001???Slave_IO_Running:Yes??Slave_SQL_Running:Yes???Replicate_Do_DB:??#...省略其它配置
3.节点2配置(192.168.1.206)3.1添加数据同步配置shell>vim/etc/my.cnf1在[mysqld]中增加以下配置项:
server_id=206binlog-ignore-db=mysqllog-bin=edu-mysql-binbinlog_cache_size=1Mbinlog_format=mixedexpire_logs_days=7slave_skip_errors=1062relay_log=edu-mysql-relay-binlog_slave_updates=1#ID自增从2开始,双数auto_increment_increment=2auto_increment_offset=2
3.2Master配置登录到mysqlshell>mysql-uroot-p?刷新授权表信息mysql>flushprivileges;#查看binlog文件的position(偏移)和File(日志文件)的值,从机上需要用到mysql>showmasterstatus;+----------------------+----------+--------------+------------------+-------------------+|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|Executed_Gtid_Set|+----------------------+----------+--------------+------------------+-------------------+|edu-mysql-bin.000001|???439|???|mysql??|?|+----------------------+----------+--------------+------------------+-------------------+1rowinset(0.00sec)
这时可以启动节点1(205)的slave服务
3.3Slave配置...省略其它配置
3.4、启动Slaveshell>startslave;QueryOK,0rowsaffected(0.01sec)mysql>showslavestatus\G;***************************1.row***************************Slave_IO_State:Waitingformastertosendevent?Master_Host:192.168.1.205?Master_User:repl?Master_Port:3306Connect_Retry:30???Master_Log_File:edu-mysql-bin.000001?Read_Master_Log_Pos:439Relay_Log_File:edu-mysql-relay-bin.000002Relay_Log_Pos:287Relay_Master_Log_File:edu-mysql-bin.000001???Slave_IO_Running:Yes??Slave_SQL_Running:Yes???Replicate_Do_DB:???...省略其它配置
4、验证下面是在206节点上的操作2、切换到mydb库,是否包含user表,并有一条数据#3、在206的mydb.user表插入一条数据,查看205是否同步过去mysql>insertintouservalues(2,'yangxin2','123456')
本文来源:国外服务器--MySQL主主数据同步
本文地址:https://www.idcbaba.com/guowai/2907.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



