当前位置:   article > 正文

mysql数据库实现MHA高可用框架

mysql数据库实现MHA高可用框架

1. 项目背景

随着互联网技术的飞速发展,越来越多的企业和个人开始使用MySQL数据库来存储和管理数据。然而,在实际应用中,数据库的高可用性问题一直是用户关注的焦点。为了提高数据库的可用性和稳定性,许多企业和开发者采用了MHA(Master High Availability)高可用框架来实现MySQL数据库的主从复制和故障切换。

MHA是一个基于Perl开发的,用于管理MySQL主从复制集群的工具,它可以自动检测MySQL主库的故障并在多个备库之间进行故障切换,确保业务的连续性和数据的完整性。在本项目中,我们将在Linux虚拟机上的CentOS系统上搭建MHA高可用框架,以实现MySQL数据库的高可用性和故障切换功能。

通过本项目的实践,我们将掌握MHA的基本原理和搭建方法,了解MySQL主从复制的相关知识,提高自己的数据库运维能力。同时,本项目也将为其他企业和开发者提供一个实用的参考方案,帮助他们更好地解决数据库高可用性问题。

2. 项目架构

项目框架:

  1. 环境准备

    • 搭建Linux虚拟机

    • 安装CentOS系统

    • 配置网络和防火墙

    • 安装MySQL数据库

  2. MySQL主从复制搭建

    • 配置主库(Master)

    • 配置管理库(Manager)

    • 配置从库(Slave1,Slave2)

  • 测试主从复制是否成功

  1. MHA高可用框架搭建

    • 安装MHA软件包

    • 配置MHA管理节点

    • 配置MHA Node节点

    • 测试MHA故障切换功能

  2. 项目总结与优化

    • 分析项目中遇到的问题及解决方法

    • 对MHA高可用框架进行优化和调整

    • 创建新数据库连接wordpress

    • 提出后续改进意见和建议

通过以上项目框架,我们将逐步完成在Linux虚拟机上的CentOS系统上搭建MHA高可用框架的任务。在实践过程中,我们将详细记录每个步骤的操作过程和注意事项,确保项目的顺利进行。

3. 项目实施

3.1 搭建过程

3.1.1环境准备
系统版本MySQL版本MHA版本
CentOS 7.6MySQL-5.7.31mha4mysql-manager-0.57 mha4mysql-node-0.57
3.1.2环境初始化

第一步:克隆机器,首先启动MASTER,然后在一次启动SLAVE1、SLAVE2以及MHA

第二步:更改计算机的主机名称

  1. # hostnamectl set-hostname master.itcast.cn
  2. # su
  3. # hostnamectl set-hostname slave1.itcast.cn
  4. # su
  5. # hostnamectl set-hostname slave2.itcast.cn
  6. # su
  7. # hostnamectl set-hostname mha.itcast.cn
  8. # su

第三步:关闭防火墙与SElinux

  1. # systemctl stop firewalld
  2. # systemctl disable firewalld
  3. # setenforce 0
  4. # sed -i '/SELINUX=enforcing/cSELINUX=disabled' /etc/selinux/config

第四步:配置yum源

  1. sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  2. #这里选择阿里的基础源
  3. [root@localhost ~] yum -y install epel-release
  4. #在配置了基础腾讯原的基础上 yum安装epel 源

第五步:ntpdate时间同步

# ntpdate 182.92.12.11
3.1.3 部署MySQL主从复制环境

数据库安装位置:/usr/local/mysql

数据库的数据目录:/usr/local/mysql/data

套接字文件:/tmp/mysql.sock

端口设置:3306

配置文件位置:/usr/local/mysql/my.cnf(MySQL => 安装目录下 => /etc目录下)

☆ MASTER主服务器

第一步:上传软件到/root目录

第二步:使用脚本安装MySQL软件

  1. # vim mysql.sh
  2. #!/bin/bash
  3. yum install libaio -y
  4. tar -xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
  5. mv mysql-5.7.31-linux-glibc2.12-x86_64 /usr/local/mysql
  6. useradd -r -s /sbin/nologin mysql
  7. rm -rf /etc/my.cnf
  8. cd /usr/local/mysql
  9. mkdir mysql-files
  10. chown mysql:mysql mysql-files
  11. chmod 750 mysql-files
  12. bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql &> /root/password.txt
  13. bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
  14. cp support-files/mysql.server /etc/init.d/mysqld
  15. service mysqld start
  16. echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
  17. source /etc/profile
  18. # source mysql.sh

第三步:设置MySQL密码

  1. # cat /root/password.txt   #最后一个密码
  2. # mysql -p
  3. mysql> set password='caichenghao2004';
  4. mysql> flush privileges;

第四步:进行安全初始化

# mysql_secure_installation             #密码123

第五步:编写MASTER主机中my.cnf配置文件

  1. # vim /usr/local/mysql/my.cnf
  2. [mysqld]
  3. basedir=/usr/local/mysql
  4. datadir=/usr/local/mysql/data
  5. socket=/tmp/mysql.sock
  6. port=3306
  7. log-error=/usr/local/mysql/data/master.err
  8. log-bin=/usr/local/mysql/data/binlog
  9. server-id=10
  10. character_set_server=utf8mb4
  11. gtid-mode=on
  12. log-slave-updates=1
  13. enforce-gtid-consistency
  14. # service mysqld restart

☆ SLAVE1/SLAVE2从服务器

第一步:上传MySQL软件到服务器端

第二步:使用脚本安装MySQL,但是不需要进行初始化

  1. # vim mysql.sh
  2. #!/bin/bash
  3. yum install libaio -y
  4. tar -xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
  5. rm -rf /usr/local/mysql
  6. mv mysql-5.7.31-linux-glibc2.12-x86_64 /usr/local/mysql
  7. useradd -r -s /sbin/nologin mysql
  8. rm -rf /etc/my.cnf
  9. cd /usr/local/mysql
  10. mkdir mysql-files
  11. chown mysql:mysql mysql-files
  12. chmod 750 mysql-files
  13. cp support-files/mysql.server /etc/init.d/mysqld
  14. echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
  15. source /etc/profile
  16. # source mysql.sh

第三步:使用rsync把MASTER服务器中的data数据目录同步到SLAVE1与SLAVE2

MASTER:

  1. # rm -rf /usr/local/mysql/data/auto.cnf
  2. rsync -av /usr/local/mysql/data root@192.168.80.158:/usr/local/mysql/
  3. rsync -av /usr/local/mysql/data root@192.168.80.151:/usr/local/mysql/

第四步:给SLAVE1与SLAVE2配置my.cnf文件

SLAVE1:

  1. # vim /usr/local/mysql/my.cnf
  2. [mysqld]
  3. basedir=/usr/local/mysql
  4. datadir=/usr/local/mysql/data
  5. socket=/tmp/mysql.sock
  6. port=3306
  7. log-error=/usr/local/mysql/data/slave1.err
  8. log-bin=/usr/local/mysql/data/binlog
  9. relay-log=/usr/local/mysql/data/relaylog
  10. server-id=20
  11. character_set_server=utf8mb4
  12. gtid-mode=on
  13. log-slave-updates=1
  14. enforce-gtid-consistency
  15. skip-slave-start

SLAVE2:

  1. # vim /usr/local/mysql/my.cnf
  2. [mysqld]
  3. basedir =/usr/local/mysql
  4. datadir=/usr/local/mysql/data
  5. socket=/tmp/mysql.sock
  6. port=3306
  7. log-error=/usr/local/mysql/data/slave2.err
  8. log-bin=/usr/local/mysql/data/binlog
  9. relay-log=/usr/local/mysql/data/relaylog
  10. server-id=30
  11. character_set_server=utf8mb4
  12. gtid-mode=on
  13. log-slave-updates=1
  14. enforce-gtid-consistency
  15. skip-slave-start

配置完成后,启动MySQL软件

# service mysqld restart

☆ 配置主从数据同步

第一步:在MASTER服务器中创建一个slave同步账号

  1. mysql> create user 'slave'@'192.168.80.%' identified by 'caichenghao2004';
  2. mysql> grant replication slave on *.* to 'slave'@'192.168.80.%';
  3. mysql> flush privileges;

第二步:创建一个mha账号(方便后期MHA监控主从同步状态)

  1. mysql> create user 'mha'@'192.168.80.150' identified by 'caichenghao2004';
  2. mysql> grant all privileges on *.* to 'mha'@'192.168.80.150';
  3. mysql> flush privileges;

第三步:在SLAVE1与SLAVE2中配置主从数据同步

  1. mysql> change master to master_host='192.168.80.153',master_port=3306,master_user='slave',master_password='caichenghao2004',master_auto_position=1;
  2. mysql> start slave;
  3. mysql> show slave status\G

到此整个一主两从就配置完毕了!

3.1.4 MHA软件的安装

㈠ 不同节点安装软件

说明:在所有节点安装 ==mha-node== 软件包,在 ==mha 管理==端再安装 mha-manager 软件包

  1. [root@mha ~]# yum –y install mha4mysql-node-0.57-0.el7.noarch.rpm
  2. [root@master ~]# yum –y install mha4mysql-node-0.57-0.el7.noarch.rpm
  3. [root@slave1 ~]# yum -y install mha4mysql-node-0.57-0.el7.noarch.rpm
  4. [root@slave2 ~]# yum –y install mha4mysql-node-0.57-0.el7.n oarch.rpm
  5. [root@mha ~]# yum –y install mha4mysql-manager-0.57-0.el7.noarch.rpm

如果已经提前安装依赖软件,则大家可以使用rpm -ivh直接安装

㈡ 配置ssh互信(免密登录)

说明:

1.在生产环境中几乎都是禁止root远程登陆服务器的,所以ssh免密码登陆要在admin用户下进行配置,这是处于安全角度考虑出发。

2.admin用户可以是任意普通用户

3.该普通用户用于mha的管理节点远程访问mysql复制组中的所有主机,完成一些其他工作

第一步:在所有机器上创建一个普通账号admin,密码123

  1. # useradd admin
  2. # echo 123|passwd --stdin admin

第二步:配置mha主机到其他主机的admin用户互信

  1. mha端:
  2. [root@mha ~]# su - admin
  3.   [admin@mha ~]$ ssh-keygen -P "" -f ~/.ssh/id_rsa
  4. [admin@mha ~]$ cd .ssh/
  5. [admin@mha .ssh]$ ls
  6. id_rsa id_rsa.pub
  7. [admin@mha .ssh]$ mv id_rsa.pub authorized_keys
  8. [admin@mha .ssh]$ for i in 153 158 151;do scp -r ../.ssh/ 192.168.80.$i:~/;done
  9. 测试免密登录:
  10. [admin@mha .ssh]$ ssh 192.168.80.153
  11. [admin@mha .ssh]$ ssh 192.168.80.158
  12. [admin@mha .ssh]$ ssh 192.168.80.151

疑问:SSH免密只需要拷贝公钥,但是以上代码是把整个.ssh目录拷贝过去了。答:因为MHA的互信,要求不仅仅是MHA免密到MASTER、SLAVE1、SLAVE2,MASTER也要免密到MHA、SLAVE1、SLAVE2...

㈢ 配置admin用户的sudo权限

MASTER主机上:

  1. [root@master ~]# vim /etc/sudoers.d/admin
  2. #User_Alias 表示具有sudo权限的用户列表; Host_Alias表示主机的列表
  3. User_Alias MYSQL_USERS = admin
  4. #Runas_Alias 表示用户以什么身份登录
  5. Runas_Alias MYSQL_RUNAS = root
  6. #Cmnd_Alias 表示允许执行命令的列表(命令需要使用完整路径)
  7. Cmnd_Alias MYSQL_CMNDS = /sbin/ifconfig,/sbin/arping
  8. MYSQL_USERS ALL = (MYSQL_RUNAS) NOPASSWD: MYSQL_CMNDS

把这个权限分发给SLAVE1与SLAVE2一份(当故障发生时,从服务器也可以自己设置VIP)

[root@master ~]# for i in 158 151;do scp /etc/sudoers.d/admin 192.168.80.$i:/etc/sudoers.d/;done

测试admin用户是否可以挂载VIP(只能在MASTER机器上挂载VIP)

  1. # su - admin
  2. [admin@master ~]$ sudo /sbin/ifconfig ens33:1 192.168.80.100 broadcast 192.168.80.255 netmask 255.255.255.0
  3. [admin@master ~]$ sudo /sbin/arping -fqc 5 -w 5 -I ens33 -s 192.168.80.100 -U 192.168.80.153
  4. [admin@master ~]$ ip a
补充:
arping:用来向局域网内的其它主机发送ARP请求的指令,可以用来测试局域网内的某个IP是否已被使用。
​
-f:收到第一个响应包后退出。
-q:quite模式,不显示输出。 
-c:发送指定的count个ARP REQUEST包后停止。如果指定了-w参数,则会等待相同数量的ARP REPLY包,直到超时为止。
-w:指定一个超时时间,单位为秒,arping在到达指定时间后退出,无论期间发送或接收了多少包。在这种情况下,arping在发送完指定的count(-c)个包后并不会停止,而是等待到超时或发送的count个包都进行了回应后才会退出。 
-I:指定设备名,用来发送ARP REQUEST包的网络设备的名称。
-D:重复地址探测模式,用来检测有没有IP地址冲突,如果没有IP冲突则返回0。 
-s:设置发送ARP包的IP资源地址
-U:无理由的(强制的)ARP模式去更新别的主机上的ARP CACHE列表中的本机的信息,不需要响应。
-h:显示帮助页。 

㈣ 创建mha相关配置文件

MHA服务器:创建工作目录

  1. [root@mha ~]# mkdir /etc/mha/
  2. [root@mha ~]# mkdir -p /data/mha/masterha/app1
  3. [root@mha ~]# chown -R admin. /data/mha

创建mha局部配置文件:

  1. [root@mha ~]# vim /etc/mha/app1.conf
  2. [server default]
  3. # 设置监控用户和密码(修改1
  4. user=mha
  5. password=caichenghao2004
  6. # 设置复制环境中的复制用户和密码(修改2
  7. repl_user=slave
  8. repl_password=caichenghao2004
  9. # 设置ssh的登录用户名(修改3
  10. ssh_user=admin
  11. # 设置监控主库,发送ping包的时间间隔,默认是3秒,尝试三次没有回应的时候自动进行failover
  12. ping_interval=3
  13. # 设置mgr的工作目录
  14. manager_workdir=/data/mha/masterha/app1
  15. # 设置mysql master保存binlog的目录,以便MHA可以找到master的二进制日志(修改4
  16. master_binlog_dir=/usr/local/mysql/data
  17. # 设置master的pid文件(修改5
  18. master_pid_file=/usr/local/mysql/data/master.itcast.cn.pid
  19. # 设置mysql master在发生切换时保存binlog的目录(在mysql master上创建这个目录)
  20. remote_workdir=/data/mysql/mha
  21. # 设置mgr日志文件(MHA遇到问题,主要看这个日志)
  22. manager_log=/data/mha/masterha/app1/app1-3306.log
  23. # MHA到master的监控之间出现问题,MHA Manager将会尝试从slave1和slave2登录到master上
  24. secondary_check_script=/usr/bin/masterha_secondary_check -s 192.168.80.158 -s 192.168.80.151 --user=admin --port=22 --master_host=192.168.80.153 --master_port=3306
  25. # 设置自动failover时候的切换脚本(故障发生时,自动挂载VIP到SLAVE1或SLAVE2
  26. master_ip_failover_script="/etc/mha/master_ip_failover.sh 192.168.80.100 1"
  27. # 设置手动切换时候的切换脚本
  28. #master_ip_online_change_script="/etc/mha/master_ip_online_change.sh 192.168.80.100 1"
  29. # 设置故障发生后关闭故障主机脚本
  30. # shutdown_script="/etc/mha/power_manager"
  31. [server1]
  32. hostname=192.168.80.153
  33. port= 3306
  34. candidate_master=1
  35. [server2]
  36. hostname=192.168.80.158
  37. port= 3306
  38. candidate_master=1
  39. [server3]
  40. hostname=192.168.80.151
  41. port= 3306
  42. candidate_master=1

㈤ 上传相应脚本/etc/mha目录,然后更改配置信息,授权

  1. [root@mha ~]# ls /etc/mha/
  2. app1.conf master_ip_failover.sh
  3. 注意:脚本内容中要修改网卡名字和连接用户为admin
  4. my $vip = shift;
  5. my $interface = 'ens33';       网卡名(38行)
  6. my $key = shift;
  7. ...
  8. sub stop_vip() {
  9.   my $ssh_user = "admin";     用户名(110行)
  10.   print "=======$ssh_stop_vip==================\n";
  11.   `ssh $ssh_user\@$orig_master_host \" $ssh_stop_vip \"`;
  12. }
  13. [root@mha ~]# chmod +x /etc/mha/master_ip_*
3.1.5 检测SSH互信以及MySQL主从状态

MHA:

  1. # su - admin
  2. # 检测SSH互信
  3. [admin@mha ~]$ masterha_check_ssh --conf=/etc/mha/app1.conf
  4. # 检测集群状态
  5. [admin@mha ~]$ masterha_check_repl --conf=/etc/mha/app1.conf
3.1.6 检查MHA状态,然后运行MHA(监控开始)

MHA:

  1. [admin@mha ~]$ masterha_check_status --conf=/etc/mha/app1.conf
  2. app1 is stopped(2:NOT_RUNNING).
  3. 开启MHA Manager监控(关键,代表启动MHA):
  4. [admin@mha ~]$ nohup masterha_manager --conf=/etc/mha/app1.conf --remove_dead_master_conf --ignore_last_failover &
  5. 这里如果报错的话 试试查看日志 我当时不知道为啥 删了错误日志就起来了
  6. 再次查看监控状态:
  7. [admin@mha ~]$ masterha_check_status --conf=/etc/mha/app1.conf
  8. app1 (pid:8913) is running(0:PING_OK), master:10.1.1.10
​
​
注意:
1. 如果正常,会显示”PING_OK ”,否则会显示”NOT_RUNNING ”,说明 MHA监控没有开启
2. 使用admin用户启动监控,否则会报权限拒绝
3. 手动停止监控命令:masterha_stop --conf=/etc/mha/app1.conf

其实到此,咱们MHA就已经配置完毕了!

3.1.7 自动Failover测试

1、在MASTER服务器安装测试工具

[root@master ~]# yum -y install sysbench

2、插入测试数据

  1. master服务器上创建测试库test
  2. mysql> create database test charset utf8mb4;
  3. Query OK, 1 row affected (0.17 sec)
  4. mysql> grant all on *.* to 'mha'@'localhost' identified by 'caichenghao2004';
  5. Query OK, 0 rows affected (0.14 sec)
  6. mysql> flush privileges;
  7. Query OK, 0 rows affected (0.11 sec)
  8. mysql> exit
  9. Bye
  10. [root@master ~]# sysbench
  11. /usr/share/sysbench/oltp_read_only.lua \
  12. --mysql-host=192.168.80.153 --mysql-port=3306 --mysql-user=mha \
  13. --mysql-password=caichenghao2004 --mysql-socket=/tmp/mysql.sock \
  14. --mysql-db=test --db-driver=mysql --tables=1 \
  15. --table-size=100000 --report-interval=10 --threads=128 --time=120 prepare
  16. mysql> select count(*) from sbtest1;
  17. +----------+
  18. | count(*) |
  19. +----------+
  20. |   100000 |
  21. +----------+
  22. 1 row in set (0.01 sec)

3、拍摄快照

MHA、MASTER、SLA VE1、SLAVE2

4、模拟MASTER服务器故障

MHA服务器:监控日志

[root@mgr ~]# tail -f /data/mha/masterha/app1/app1-3306.log

MASTER服务器:

# service mysqld stop
3.1.8 虚拟机连接wordpress实现MHA高可用框架

1.利用MobaXterm的FTP功能把Wordpress压缩包从计算机端上传后解压

创建数据库 创建一个wordpress的数据库,空的数据库即可

create database wordpress;

2.重启服务

  1. systemctl restart php-fpm
  2. systemctl restart nginx

3.设置wordpress

按照步骤进行后会显示wordpress界面如下

至此,博客就可以顺利运行起来了,在你的电脑上只是这样的后台样子,别人访问的时候就可以看到你的博客首页了

3.2 解决的问题

在创建过程中,可能会遇到以下问题:

  1. 技术难题:在搭建MHA高可用框架时,可能会遇到一些技术难题,例如配置主从复制、解决网络延迟等。需要查阅相关资料和经验来解决这些问题。

  2. 软件版本兼容性:在安装MySQL、MariaDB和MHA管理工具时,可能会遇到软件版本不兼容的问题。需要选择合适的版本进行安装和配置。

  3. 配置文件错误:在修改MySQL的配置文件时,可能会出现语法错误或配置项错误。需要仔细检查配置文件并确保其正确性。

  4. 权限问题:在创建用户和授权时,可能会出现权限不足的问题。需要使用具有足够权限的用户进行操作。

  5. 网络问题:在搭建MHA高可用框架时,可能会遇到网络连接问题,例如无法访问MySQL服务器、网络延迟等。需要检查网络设置并确保网络连接正常。

  6. 数据丢失:在搭建MHA高可用框架时,可能会出现数据丢失的问题。需要在搭建前备份好数据,并在搭建过程中注意数据的一致性和完整性。

  7. IP地址不固定导致连接崩溃问题:在制作过程中常常遇到虚拟机IP地址自动更换的问题,以至于搭建的MHA连接错误

3.3 知识补充

在搭建MHA高可用框架并连接WordPress的过程中,需要了解以下知识点:

  1. MySQL主从复制:主从复制是MySQL中实现数据备份和读写分离的机制。主服务器负责处理写操作,并将数据同步到从服务器上进行读取。通过配置主从复制可以实现数据的高可用性和负载均衡。

  2. MHA(Master High Availability Manager):MHA是一个用于管理MySQL主从复制集群的工具,可以自动检测故障并进行故障转移,确保数据库的高可用性。MHA支持多种一主多从的拓扑结构,并提供了丰富的监控和管理功能。

  3. MHA组件:

    • MHA Manager(管理节点) MHA Manager可以单独部署在一台独立的机器上管理多个==master-slave集群==,也可以部署在一台slave节点上。

    • MHA Node(数据节点)MHA Node运行在==每台MySQL服务器==上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。

  4. WordPress:WordPress是一个流行的开源内容管理系统,使用MySQL作为其默认的数据库。通过将WordPress连接到MHA高可用框架,可以实现数据库的高可用性和故障转移,提高WordPress的性能和可靠性。

  5. Linux虚拟机:Linux虚拟机是一种基于Linux操作系统的虚拟计算机环境,可以在物理机上运行多个独立的虚拟机实例。在搭建MHA高可用框架时,可以使用Linux虚拟机来模拟实际的生产环境,方便进行测试和调试。

  6. Shell脚本编程:Shell脚本是一种用于自动化任务的脚本语言,可以编写一系列的命令来实现特定的功能。在搭建MHA高可用框架时,可以使用Shell脚本来简化部署和管理过程,提高效率和可维护性。

  7. 网络配置和故障排除:在搭建MHA高可用框架时,需要进行网络配置和故障排除,确保各个节点之间的网络连接正常。需要了解网络基础知识和常用的网络诊断工具,如ping、traceroute等。

4. 功能展示

5. 项目总结

项目总结:

在Linux虚拟机上搭建MHA高可用框架并连接WordPress的过程中,我们完成了以下任务:

  1. 安装MySQL和:在Linux虚拟机上安装了MySQL数据库服务器,并配置了相应的参数。

  2. 配置主从复制:在主服务器上创建用于复制的用户,并授权给该用户。修改主服务器的配置文件,开启二进制日志和设置需要复制的数据库。在从服务器上配置主从复制,指定主服务器的信息和位置。

  3. 安装MHA管理工具:在三台MySQL服务器上安装了MHA管理工具,用于监控和管理主从复制集群。

  4. 配置MHA管理工具:使用MHA管理工具配置主从复制集群,包括指定主服务器、从服务器、虚拟IP等参数。

  5. 测试主从复制:通过查看主从服务器的状态和日志,确认主从复制是否正常工作。

  6. 连接WordPress:将WordPress连接到MHA高可用框架,确保数据库的高可用性和故障转移。

通过这个项目,我们学习到了很多关于MySQL主从复制和MHA高可用框架的知识,掌握了相关的配置和管理技巧。同时,我们也提高了自己的问题解决能力和团队合作能力。

在项目中遇到的一些问题和挑战,例如技术难题、软件版本兼容性、配置文件错误等,都通过查阅资料、与团队成员讨论和尝试不同的解决方案来解决。这些经历让我们更加熟悉和了解了相关技术和工具的使用。

总的来说,这个项目是一个很有挑战性和收获的项目。通过搭建MHA高可用框架并连接WordPress,我们不仅提高了自己的技术水平,还加深了对数据库和高可用性的理解。这对我们今后的工作和学习都有很大的帮助。

6. 参考资料

  1. MySQL官方文档:MySQL :: MySQL 8.0 Reference Manual :: 17.1.2 Setting Up Binary Log File Position Based Replication

    • 提供了关于MySQL主从复制的详细配置和操作步骤。

  2. Oracle官方文档:https://docs.oracle.com/cd/E17952_01/mysql-8.0-en/mysql-mgmt-utils-clients.html#GUID-4B6F3C3D-8B72-45B9-9D9E-5C5C678D1A7F

    • 介绍了MHA管理工具的基本用法和配置方法。

  3. Linux命令手册:Linux Commands for Managing, Partitioning, Troubleshooting - Linux.com

    • 提供了关于Linux命令行操作的详细说明和示例。

  4. Shell脚本编程指南:The Shell Scripting Tutorial - The Shell Scripting Tutorial

    • 提供了关于Shell脚本编程的教程和示例,可以帮助编写自动化任务的Shell脚本。

  5. MHA官方GitHub仓库:https://github.com/yoshinorim/mha4mysql-manager

    • 提供了MHA管理工具的源代码和最新的更新信息。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/551166
推荐阅读
相关标签
  

闽ICP备14008679号