MYSQL读写分离集群搭建(二)
经过昨天的安装,已经部署了几台虚拟机了,接着继续从下向上安装
今天安装mysql mha集群
安装mysql集群
linux CentOS 7.9
mysql 5.7.32
MHA-node 0.58
MHA-manager 0.58
集群中各节点的作用和需要按照的 软件
ip 主机名 作用 安装软件
8.1.3.159 mymha01 mha manager mha_manager,mha_node
8.1.3.160 mydb01 mysql主 mysql,mha_node
8.1.3.161 mydb02 mysql从 mysql,mha_node
8.1.3.162 mydb03 mysql从 mysql,mha_node
8.1.3.163 mydb04 mysql从 mysql,mha_node
在所有机器上设置hosts
8.1.3.155 myha01
8.1.3.156 myha02
8.1.3.157 mymd01
8.1.3.158 mymd02
8.1.3.159 mymha01
8.1.3.160 mydb01
8.1.3.161 mydb02
8.1.3.162 mydb03
8.1.3.163 mydb04
一、配置ssh公钥互信
配置mha manager和mha node各节点间的root用户的ssh公钥互信
在节点分别执行如下操作:(包括自己ssh自己)
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@mymha01
ssh-copy-id -i /root/.ssh/id_rsa.pub root@mydb01
ssh-copy-id -i /root/.ssh/id_rsa.pub root@mydb02
ssh-copy-id -i /root/.ssh/id_rsa.pub root@mydb03
ssh-copy-id -i /root/.ssh/id_rsa.pub root@mydb04
二、卸载mariadb
查找 mariadb
rpm -qa|grep mariadb
卸载maridb
rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
三、下载mysql
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar
四、安装mysql
在除了mha管理节点外安装mysql
解压
tar -vxf mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar
安装mysql-common
rpm -ivh mysql-community-common-5.7.32-1.el7.x86_64.rpm
安装mysql-libs
rpm -ivh mysql-community-libs-5.7.32-1.el7.x86_64.rpm
安装mysql-libs-compact
rpm -ivh mysql-community-libs-compat-5.7.32-1.el7.x86_64.rpm
安装mysql-clients
rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm
安装mysql-server
rpm -ivh mysql-community-server-5.7.32-1.el7.x86_64.rpm
安装mysql-devel
rpm -ivh mysql-community-devel-5.7.32-1.el7.x86_64.rpm
Mysql初始化
mysqld --initialize --user=mysql
临时密码可通过下面命令查看
cat /var/log/mysqld.log
启动mysql服务
systemctl start mysqld
systemctl status mysqld
登录mysql,更改默认密码
mysql -uroot -p
set password=password(‘zijiwu2020T’);
五、配置mydb01(master)主机上面的mysql
vi /etc/my.cnf
在最后增加
[mysqld]部分
server_id=10
log_bin=mysql_bin
relay_log=relay_bin
log_slave_updates=on
gtid_mode=ON
enforce_gtid_consistency=1
binlog-ignore-db=sys
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
plugin_load=“rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so”
loose_rpl_semi_sync_master_enabled=1
loose_rpl_semi_sync_slave_enabled=1
loose_rpl_semi_sync_master_timeout=1000
然后重启数据库
systemctl restart mysqld
登录mysql ,授予root远程登录的权限
mysql -uroot -pzijiwu2020T
#开启复制功能
grant replication slave on . to ‘root’@’%’ identified by ‘zijiwu2020T’;
#开启远程登录功能
grant all privileges on . to ‘root’@’%’ identified by ‘zijiwu2020T’;
#刷新权限
flush privileges;
#查看数据监控状态
show master status;
查看从库数量
show slave hosts;
当前为空
六、配置mydb02主机上面的mysql
vi /etc/my.cnf
在最后增加
[mysqld]部分
server_id=20
read_only=1
其余与mydb01相同
然后重启数据库
systemctl restart mysqld.service
登录mysql ,授予root远程登录的权限
mysql -uroot -pzijiwu2020T
grant all privileges on . to ‘root’@’%’ identified by ‘zijiwu2020T’;
#刷新权限
flush privileges;
改变主库
CHANGE MASTER TO
MASTER_HOST=‘8.1.3.160’,
MASTER_PORT=3306,
MASTER_AUTO_POSITION=1,
MASTER_USER=‘root’,
MASTER_PASSWORD=‘zijiwu2020T’;
启动从库
start slave;
七、配置mydb03主机上面的mysql
vi /etc/my.cnf
在最后增加
[mysqld]部分
server_id=30
read_only=1
其余与mydb01相同
接着执行mydb02上面的相同配置
八、配置mydb04主机上面的mysql
vi /etc/my.cnf
在最后增加
[mysqld]部分
server_id=40
read_only=1
其余与mydb01相同
接着执行mydb02上面的相同配置
九、在mydb01上验证
mysql> show slave hosts;
±----------±-----±-----±----------±-------------------------------------+
| Server_id | Host | Port | Master_id | Slave_UUID |
±----------±-----±-----±----------±-------------------------------------+
| 20 | | 3306 | 10 | 80793e1d-7324-11eb-ba73-000c29e11ef4 |
| 40 | | 3306 | 10 | 8465d834-7324-11eb-b610-000c29645bf9 |
| 30 | | 3306 | 10 | 8257e7a3-7324-11eb-b145-000c290659ff |
±----------±-----±-----±----------±-------------------------------------+
3 rows in set (0.00 sec)
十、所有服务器都安装mha node
安装依赖环境
yum install -y epel-release
yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
下载mha node 软件
wget https://qiniu.wsfnk.com/mha4mysql-node-0.58-0.el7.centos.noarch.rpm --no-check-certificate
安装node
rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm
十一、mymha01管理服务器安装mha manager
wget https://qiniu.wsfnk.com/mha4mysql-manager-0.58-0.el7.centos.noarch.rpm --no-check-certificate
rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
十二、 配置mha manager
在mymha01上
先新建一个工作目录
mkdir /mha
编辑配置文件
vi /etc/masterha_default.cnf
[server default]
user=root
password=zijiwu2020T
manager_workdir=/mha
manager_log=/mha/manager.log
remote_workdir=/mha
ssh_user=root
repl_user=root
repl_password=zijiwu2020T
ping_interval= 1
[server1]
hostname=mydb01
master_binlog_dir=/data/mysql
candidate_master=1
[server2]
hostname=mydb02
master_binlog_dir=/data/mysql
candidate_master=1
[server3]
hostname=mydb03
master_binlog_dir=/data/mysql
no_master=1
[server4]
hostname=mydb04
master_binlog_dir=/data/mysql
no_master=1
十三、 验证并启动MHA manager
验证SSH互认是否成功
masterha_check_ssh --conf=/etc/masterha_default.cnf
验证主从复制是否正确
masterha_check_repl --conf=/etc/masterha_default.cnf
检查状态
masterha_check_status --conf=/etc/masterha_default.cnf
启动mha
nohup masterha_manager --conf=/etc/masterha_default.cnf < /dev/null > /root/nohupmanager.log 2>&1 &
由于每次failover后,会生成一个表示文件,因此会阻止mha再次运行,可以加一个参数
nohup masterha_manager --conf=/etc/masterha_default.cnf --ignore_last_failover < /dev/null > /root/nohupmanager.log 2>&1 &
停止
masterha_stop --conf=/etc/masterha_default.cnf
查看日志
cat /mha/manager.log
查看后台程序
jobs
[1]+ Running nohup masterha_manager --conf=/etc/masterha_default.cnf < /dev/null > /root/nohupmanager.log 2>&1 &
相关文章
- 08-18二、mongo集群搭建
- 08-18Hadoop-实验二 搭建Hadoop集群
- 08-18第二章-大数据导论和Hadoop集群环境搭建.docx
- 08-18graylog日志平台搭建 (二) 部署elasticsearch集群
- 08-18kingbaseES V8R3 读写分离集群在线扩容V1.0
- 08-18高可用集群搭建系列(二) keepalived与haproxy部署
- 08-18ELK集群搭建 --(二)
- 08-18KingbaseES R3读写分离集群工作机制(2)
- 08-18(二)kubernetes集群搭建(二进制方式)之--搭建etcd
- 08-18基于 kubeadm 搭建高可用的kubernetes 1.18.2 (k8s)集群二 搭建高可用集群