Serie práctica de MySQL
- Operación práctica de MySQL (1): instalación de MySQL5.7 en CentOS7 y configuración básica_blog de DreamEhome-blog CSDN_La instalación de mysql5.7 en el nombre de la tabla de configuración de centos7 ignora mayúsculas y minúsculas
- Operación práctica de MySQL (2) - Práctica de sincronización maestro-esclavo de MySQL Combat_DreamEhome's Blog-CSDN Blog
- Operación práctica de MySQL (3): uso de Mycat para implementar subbases de datos y tablas + separación de lectura y escritura_blog-CSDN de DreamEhome
- Operación práctica de MySQL (4): uso de Haproxy + keeplived para lograr la alta disponibilidad de Mycat_Blog-CSDN de DreamEhome
Tabla de contenido
1.Instalación y configuración de la instalación de Haproxy.
1.2 Modificar el archivo de configuración de haproxy
2. Instalación y configuración de Keepalived
2.2 Modificar el archivo de configuración Keepalived
3. Configure otro servidor del clúster Haproxy+Keepalived
4.Prueba de integración Haproxy+Keepalived
Método 1: utilice la prueba VIP para iniciar sesión en la interfaz web de Haproxy
Método 2: inicie sesión en Mycat en el servidor Mysql para realizar pruebas
Método 3: prueba mediante herramientas de administración de SQL
Estructura general
Objetivos
- Cree un clúster de replicación maestro-esclavo de MySQL
- Instale dos Mycats y configure subbases de datos y tablas + separación de lectura y escritura
- Utilice haproxy para lograr alta disponibilidad de dos servicios mycat
Preparación ambiental
- 6 máquinas virtuales (CentOS7 se usó para demostración, dos de las cuales son maestra y esclava MySQL, dos servidores Mycat, dos servidores haproxy+keepalived, todos los servidores deben habilitar la función de acceso remoto )
- Se han instalado y configurado dos máquinas virtuales MySQL (consulte Operación práctica de MySQL (1): instalación CentOS7 de MySQL 5.7 y configuración básica (inicio de arranque + cambio de contraseña inicial + habilitar acceso remoto + insensibilidad a mayúsculas y minúsculas)_Blog de DreamEhome: blog de CSDN_centos7 instalación mysql5 .7 el nombre de la tabla de configuración ignora mayúsculas y minúsculas )
- Se configuran dos MySQL para completar la replicación maestro-esclavo (consulte Operación práctica de MySQL (2): práctica de sincronización maestro-esclavo de MySQL_blog-CSDN de DreamEhome , IP y configuración maestro-esclavo son las mismas que la referencia)
- Se configuran dos servidores Mycat para completar la subbase de datos maestro-esclavo y la tabla + separación de lectura y escritura de MySQL (consulte Operación práctica de MySQL (3): uso de Mycat para implementar la subbase de datos y la tabla + separación de lectura y escritura_Blog-CSDN de DreamEhome Blog )
- Planificación del servidor
Servidor\Servicio mysql Mi gato Haproxy Mantener vivo 192.168.237.135 Implementación (principal) 192.168.237.136 Implementar (desde) 192.168.237.134 desplegar 192.168.237.137 desplegar 192.168.237.140 desplegar desplegar 192.168.237.141 desplegar desplegar
Configuración del entorno
Las siguientes operaciones se realizan en haproxy01:192.168.237.140
Dirección de descarga del archivo de configuración general de Haproxy + Keepalived: Archivo de configuración de Haproxy + Keepalived (con comentarios) -Recursos de documentos de Linux-Descarga de CSDN
1.Instalación y configuración de la instalación de Haproxy.
1.1 Instalación de Haproxy
Instalar haproxy usando yum
#查看yum可用的haproxy版本
yum list|grep haproxy
#在线安装使用yum安装haproxy
yum -y install haproxy.x86_64
1.2 Modificar el archivo de configuración de haproxy
Ruta del archivo de configuración una vez completada la instalación: /etc/haproxy/haproxy.cfg
Dirección de descarga del archivo de configuración de Haproxy: Archivo de configuración de Haproxy haproxy.cnf (con comentarios) -Recursos de documentos de CentOS-Descarga de CSDN
vim /etc/haproxy/haproxy.cfg
Las principales modificaciones son las siguientes.
frontend mycat
#操作端口
bind 0.0.0.0:8066
#管理端口
bind 0.0.0.0:9066
mode tcp
log global
default_backend mycat_server
backend mycat_server
balance roundrobin
#check表示检查
server mycat1 192.168.237.134:8066 check inter 5s rise 2 fall 3
server mycat2 192.168.237.137:8066 check inter 5s rise 2 fall 3
server mycatadmin1 192.168.237.134:9066 check inter 5s rise 2 fall 3
server mycatadmin2 192.168.237.137:9066 check inter 5s rise 2 fall 3
listen stats
#访问模式
mode http
#haproxy对外开发的端口
bind 0.0.0.0:5000
stats enable
#隐藏版本
stats hide-version
#通过web界面访问haproxy的路径
stats uri /haproxy
#静态资源
stats realm Haproxy\ Statistics
#通过web界面访问haproxy的用户名密码
stats auth admin:admin
#通过web界面访问haproxy后身份为admin管理员
stats admin if TRUE
1.3 Iniciar haproxy
Nota: Antes de iniciar haproxy, si la hora de la máquina virtual no está sincronizada con la máquina local, se informará un error durante el inicio; puede ejecutar el siguiente comando para resolver este problema sin sincronizar la hora.
setenforce 0
Comandos relacionados con haproxy:
#启动
systemctl start haproxy
#停止
systemctl stop haproxy
#查看状态
systemctl status haproxy
#重启
systemctl restart haproxy
1.4 prueba de haproxy
Acceda a la interfaz web configurada en haproxy en el navegador, ingrese el nombre de usuario y contraseña configurados admin/admin e inicie sesión:
Si el estado en mycat_server está activo, la configuración se realizó correctamente.
2. Instalación y configuración de Keepalived
2.1 Instalación mantenida
Utilice yum para instalar Keepalived.
#查看yum可用的keepalived版本
yum list|grep keepalived
#在线安装使用yum安装keepalived
yum -y install keepalived.x86_64
2.2 Modificar el archivo de configuración Keepalived
Ruta del archivo de configuración una vez completada la instalación: /etc/keepalived/keepalived.cfg
Dirección de descarga del archivo de configuración de Keeplived: archivo de configuración de Keeplived keepalived.cnf (con comentarios) -Recursos de documentos de Linux-Descarga de CSDN
vim /etc/keepalived/keepalived.cfg
El contenido de la modificación es el siguiente.
global_defs {
router_id NodeA #当前节点名称
}
vrrp_instance VI_1 {
state MASTER #设置主服务器
interface ens33 #系统的网卡名字(centos6为eth0,centos7位eth33)
virtual_router_id 10 #多个保持心跳的keepalived节点要设置同一个router_id
priority 100 #权重,权重数字越大,权重越大:即表示VIP访问权重最大的
advert_int 1
authentication {
auth_type PASS #通过PASS认证(密码认证)
auth_pass 123456 #多个保持心跳的keepalived节点要设置同一个auth_pass
}
virtual_ipaddress { #虚拟IP地址,可设置多个
192.168.237.255/24 #对外暴露的IP地址,24是网络位数(可省略)
192.168.237.254/24
}
track_script{ #自定义追踪脚本
chk_haproxy #追踪haproxy
}
}
vrrp_script chk_haproxy { #定义的方法名
script "/etc/keepalived/check_haproxy.sh"
interval 4 #追踪频率
weight 3 #追踪权重
}
Cree un nuevo script check_haproxy.sh en /etc/keepalived. El contenido del script es el siguiente
#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 0 ];then
systemctl start haproxy.service
fi
2.3 Iniciar Keepalived
Comandos relacionados con Keepalived:
#启动
systemctl start keepalived
#停止
systemctl stop keepalived
#查看状态
systemctl status keepalived
#重启
systemctl restart keepalived
Después de un inicio exitoso, como se muestra a continuación, el VIP actualmente vigente es 192.168.237.254
3. Configure otro servidor del clúster Haproxy+Keepalived
Los pasos de operación específicos son los mismos que los pasos 1 y 2, pero debe modificar el archivo de configuración de Keepalived, modificar el router_id y la prioridad, y otras operaciones son las mismas que haproxy01:192.168.237.140.
El archivo de configuración de Keepalived es el siguiente:
global_defs {
router_id NodeB #当前节点名称
}
vrrp_instance VI_1 {
state MASTER #设置主服务器
interface ens33 #系统的网卡名字(centos6为eth0,centos7位eth33)
virtual_router_id 10 #多个保持心跳的keepalived节点要设置同一个router_id
priority 90 #权重,权重数字越大,权重越大:即表示VIP访问权重最大的
advert_int 1
authentication {
auth_type PASS #通过PASS认证(密码认证)
auth_pass 123456 #多个保持心跳的keepalived节点要设置同一个auth_pass
}
virtual_ipaddress { #虚拟IP地址,可设置多个
192.168.237.255/24 #对外暴露的IP地址,24是网络位数(可省略)
192.168.237.254/24
}
track_script{ #自定义追踪脚本
chk_haproxy #追踪haproxy
}
}
vrrp_script chk_haproxy { #定义的方法名
script "/etc/keepalived/check_haproxy.sh"
interval 4 #追踪频率
weight 3 #追踪权重
}
4.Prueba de integración Haproxy+Keepalived
Método 1: utilice la prueba VIP para iniciar sesión en la interfaz web de Haproxy
Inicie sesión en http://192.168.237.254:5000/haproxy
Método 2: inicie sesión en Mycat en el servidor Mysql para realizar pruebas
Nota: La razón por la que no se puede probar directamente en el servidor Haproxy + Keepalived es porque Mysql no está instalado en el servidor actual y no se pueden ejecutar comandos como mysql.
Utilice IP virtual (VIP) para iniciar sesión en mycat para su operación
#登录Mycat
# -u 登录名 用户名和密码为在mycat的server.xml中配置的name和password
# -p 密码
# -h Keepalived配置的虚拟IP
# -P Mycat端口号,默认8066
mysql -uroot -p123456 -h192.168.237.254 -P8066;
La función de verificar la subbase de datos y la subtabla es la misma que la de mycat.
Método 3: prueba mediante herramientas de administración de SQL
Tomando navicat como ejemplo, cree una nueva conexión Mysql en navicat: el host es la IP del servidor VIP, el número de puerto es 8066 de Mycat, el nombre de usuario y la contraseña son el nombre y la contraseña configurados en el server.xml de Mycat, y el resto de las pruebas son las mismas.