MySQL5.6一主多从的半同步复制实例

MySQL Master:192.168.1.152

MySQL Slave1:192.168.1.201

MySQL Slave2:192.168.1.202

1.3、实验拓扑:

二、安装Mysql5.6

2.1、由于是最小化安装的系统,需要安装一些基本的组建

#yum-ygroupinstall”PerlSupport”#yum-yinstdallvimwget#cd/usr/local/src#wget

2.2、新建用户和数据目录。

#mkdir-pv/mydata/data#groupadd-rmysql#useradd-gmysql-r-s/sbin/nologin-M-d/mydata/datamysql#chown-Rmysql:mysql/mydata/data

2.3、安装并初始化mysql

#tarzxvfmysql-5.6.24-linux-glibc2.5-x86_64.tar.gz-C/usr/local#cd/usr/local/#ln-svmysql-5.6.24-linux-glibc2.5-x86_64mysql#cdmysql#chown-Rmysql:mysql.#scripts/mysql_install_db–user=mysql–datadir=/mydata/data#chown-Rroot.

2.4、为mysql提供主配置文件

#cd/usr/local/mysql#cpsupport-files/my-default.cnf/etc/my.cnf

2.5、为mysql配置sysv服务脚本

#cd/usr/local/mysql#cpsupport-files/mysql.server/etc/rc.d/init.d/mysqld#chkconfig–addmysqld//添加至服务列表#chkconfigmysqldon

为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:

2.6、输出mysql的man手册至man命令的查找路径。

编辑/etc/man.config,添加如下行即可

MANPATH/usr/local/mysql/man

2.7、输出mysql的头文件至系统头文件路径/usr/include

这可以通过简单的创建链接实现

#ln-sv/usr/local/mysql/include/usr/include/mysql

2.8、输出mysql的库文件给系统库查找路径。

#echo’/usr/local/mysql/lib’>/etc/ld.so.conf.d/mysql.conf#ldconfig//让系统重新载入系统库

2.9、修改PATH环境变量,让系统可以直接使用mysql的相关命令。

#echo”exportPATH=$PATH:/usr/local/mysql/bin”>/etc/profile.d/mysql.sh#source/etc/profile.d/mysql.sh

以上安装过程在三台服务器军需执行。

三、主从模式配置

3.1、配置master节点:

[root@master ~]# cat /etc/my.cnf

[mysqld]binlog-format=ROWlog-bin=master-binlog-slave-updates=truegtid-mode=onenforce-gtid-consistency=truemaster-info-repository=TABLErelay-log-info-repository=TABLEsync-master-info=1slave-parallel-workers=2binlog-checksum=CRC32master-verify-checksum=1slave-sql-verify-checksum=1binlog-rows-query-log_events=1server-id=1report-port=3306port=3306datadir=/mydata/datasocket=/tmp/mysql.sockreport-host=masterrpl_semi_sync_master_enabled=ON

配置参数简要说明:

binlog-format:二进制日志的格式,有row、statement和mixed三种类型;当设置隔离级别为READ-COMMITED必须设置二进制日志格式为ROW,现在MySQL官方认为STATEMENT这个已经不再适合继续使用;mixed类型在默认的事务隔离级别下,可能会导致主从数据不一致;log-bin:二进制日志存名,可指定存放路径;log-slave-updates:slave更新时是否记录到日志中;gtid-mode:指定GTID的类型,否则就是普通的复制架构;enforce-gtid-consistency:是否强制GTID的一致性;master-info-repository和relay-log-info-repository:启用此两项,可用于实现在崩溃时保证二进制及从服务器安全的功能;binlog-rows-query-log-events:启用之可用于在二进制日志详细记录事件相关的信息,可降低故障排除的复杂度;server-id:同一个复制拓扑中的所有服务器的id号必须惟一;report-port:产生复制报告时在哪个端口上提供相关功能;report-host:产生复制报告时在哪个主机上提供相关功能,一般为自己的主机名;sync-master-info:启用之可确保服务器崩溃时无信息丢失;slave-paralles-workers:设定从服务器启动几个SQL复制线程数;0表示关闭多线程复制功能;数字太大也无意义最好与要复制的数据库的数目相同binlog-checksum:复制时是否校验二进制文件的完整性等相关功能;binlog的校验格式校验算法(CRC32:循环冗余校验码32位);datadir:数据文件存放路径;master-verify-checksum:检验主服务器二进制日志的相关功能;slave-sql-verify-checksum:校验从服务器中继日志的相关功能的;rpl_semi_sync_master_enabled:是否开启半同步复制;

[root@slave1 ~]# cat /etc/my.cnf

[mysqld]binlog-format=ROWlog-slave-updates=truegtid-mode=onenforce-gtid-consistency=truemaster-info-repository=TABLErelay-log-info-repository=TABLEsync-master-info=1slave-parallel-workers=2binlog-checksum=CRC32master-verify-checksum=1slave-sql-verify-checksum=1binlog-rows-query-log_events=1server-id=11report-port=3306port=3306log-bin=mysql-bin.logdatadir=/mydata/datasocket=/tmp/mysql.sockreport-host=slave1rpl_semi_sync_slave_enabled=ON生命不是一场赛跑,而是一次旅行。比赛在乎终点,而旅行在乎沿途风景。

MySQL5.6一主多从的半同步复制实例

相关文章:

你感兴趣的文章:

标签云: