Linux—MySQL高可用群集MHA
一.什么是MHA?
1.MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,MHA是由日本人开发,是一套优秀的MySQL故障切换和主从复制的高可用软件
2.在MySQL故障切换的过程中,MHA能做到0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能够最大程度上保证数据库的一致性,以达到真正意义上的高可用
3.MHA由perl语言编写,该工具仅仅使用于MySQLReplication环境,目的在于维持Master主库的高可用性
4.MHA是基于标准的MySQL复制(异步/半同步)
5.MHA由两部分组成管理节点(MHA manager)和数据节点(MHA Node)两部分组成
6.MHA manager 可以单独部署在一台服务器上,可以部署在一台slave上面
7.主从复制架构:主从复制(一主多从);MHA架构(多主多从);MMM架构(双主多从)二.操作步骤
第一步安装MySQL:
1.安装编译依赖的环境
yum -y install ncurses-devel gcc-c++ perl-Module-Install
2.安装 gmake 编译软件
tar zxvf cmake-2.8.6.tar.gz
cd cmake-2.8.6
./configure
gmake && gmake install
3.安装 MySQL 数据库
tar -zxvf mysql-5.6.36.tar.gz
cd mysql-5.6.36
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DSYSCONFDIR=/etc
[root@Mysql1 mysql-5.6.36]# make && make install
[root@Mysql1 mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf
[root@Mysql1 mysql-5.6.36]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@Mysql1 ~]# chmod +x /etc/rc.d/init.d/mysqld
[root@Mysql1 ~]# chkconfig --add mysqld
[root@Mysql1 ~]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@Mysql1 ~]# source /etc/profile
[root@Mysql1 ~]# groupadd mysql
[root@Mysql1 ~]# useradd -M -s /sbin/nologin mysql -g mysql
[root@Mysql1 ~]# chown -R mysql.mysql /usr/local/mysql
[root@Mysql1 ~]# mkdir -p /data/mysql
4.初始化数据库
/usr/local/mysql/scripts/mysql_install_db \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data \
--user=mysql
5.修改 Master 的主配置文件/etc/my.cnf 文件,三台服务器的 server-id 不能一样
主:
vim /etc/my.cnf
[mysqld]
server-id = 1
log_bin = master-bin
log-slave-updates = true
从:
在/etc/my.cnf 中修改或者增加下面内容。
vim /etc/my.cnf
server-id = 2
log_bin = master-bin
relay-log = relay-log-bin
relay-log-index &#