ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MYSQL读写分离集群搭建(二)

2021-02-20 13:01:08  阅读:162  来源: 互联网

标签:rpm 读写 MYSQL mha manager 集群 ssh mysql root


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 &

标签:rpm,读写,MYSQL,mha,manager,集群,ssh,mysql,root
来源: https://blog.csdn.net/tikiyou/article/details/113880701

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有