文章目录
一、MySQL+MHA部署实验
主机 | 操作系统 | IP地址 | 安装包/软件/工具 |
---|---|---|---|
Master节点服务器 | Centos7.4(64位) | 192.168.100.10 | |
slave1节点服务器 | Centos7.4(64位) | 192.168.100.20 | |
slave2节点服务器 | Centos7.4(64位) | 192.168.100.30 | |
MHA manager节点服务器 | Centos7.4(64位) | 192.168.100.40 |
1.关闭系统防火墙和安全机制(全部服务器)
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
2、修改节点的主机名(Master、Slave1、Slave2)
hostnamectl set-hostname Master
su -
hostnamectl set-hostname Slave1
su -
hostnamectl set-hostname Slave2
su -
3、修改三台MySQL服务器的主配置文件
Master节点(192.168.100.10)
vim /etc/my.cnf
[mysqld]
server-id = 1
log_bin = master-bin
log-slave-updates = true
systemctl restart mysqld
ln -s /usr/local/mysql/bin/mysql /usr/sbin/
ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/
slave1(192.168.100.20)、slave2(192.168.100.30)
vim /etc/my.cnf
server-id = 2 #三台服务器的 server-id 不能一样
(server-id = 3)
log_bin = master-bin
relay-log = relay-log-bin
relay-log-index = slave-relay-bin.index
systemctl restart mysqld
ln -s /usr/local/mysql/bin/mysql /usr/sbin/
ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/
4、配置mysql一主两从
所有数据库节点进行mysql授权
mysql -uroot -p
grant replication slave on *.* to 'myslave'@'192.168.100.%' identified by 'abc123'; #从数据库同步使用
grant all privileges on *.* to 'mha'@'192.168.100.%' identified by 'manager'; #manager使用
grant all privileges on *.* to 'mha'@'Master' identified by 'manager'; #防止从库通过主机名连接不上主库
grant all privileges on *.* to 'mha'@'Slave1' identified by 'manager';
grant all privileges on *.* to 'mha'@'Slave2' identified by 'manager';
flush privileges;
Master节点查看二进制文件和同步点
show master status;
slave1(192.168.100.20)、slave2(192.168.100.30)
change master to master_host='192.168.100.10',master_user='myslave',master_password='abc123',master_log_file='master-bin.000001',master_log_pos=1747;
start slave;
#在slave1、slave2节点查看数据同步结果
show slave status\G #确保 IO 和 SQL 线程都是 Yes,代表同步正常。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
两个库必须设置为只读模式
set global read_only=1;
5、主从复制验证
#主
create database xxx;
show databases;
#从
show databases;
6、安装MHA软件
所有服务器上都安装 MHA 依赖的环境,首先安装 epel 源
#使用nat模式并用阿里的在线源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install epel-release --nogpgcheck -y
yum install -y perl-DBD-MySQL \ #perl针对对于mysql数据库
perl-Config-Tiny \ #从配置文件中提拿其中的值
perl-Log-Dispatch \ #log-日志
perl-Parallel-ForkManager \ #多线程管理
perl-ExtUtils-CBuilder \ #扩展工具
perl-ExtUtil