2. Introducción a MHA
1. ¿Qué es MHA?
MHA (Master High Availability) es actualmente una solución relativamente madura para la alta disponibilidad de MySQL, fue desarrollada por Youshimaton, una empresa japonesa DeNA (que ahora trabaja en Facebook), y es un excelente conjunto de soluciones.Entorno de alta disponibilidad MySQLConmutación por error y promoción maestro-esclavoSoftware de alta disponibilidad. Durante el proceso de conmutación por error de MySQL, MHA puede completar automáticamente la operación de conmutación por error de la base de datos en un plazo de 0 a 30 segundos, y durante el proceso de conmutación por error, MHA puedeen mayor medidaGarantice la coherencia de los datos para lograr una verdadera alta disponibilidad.
2. Principio de funcionamiento de MHA:
cuando el maestro falla, el hilo de E/S entre esclavos lee la posición binlog en el maestro y selecciona el esclavo más cercano como el último maestro (último esclavo).
Otros esclavos generan registros de retransmisión diferencial comparándolos con el último esclavo y aplicándolos.
Aplique el binlog guardado desde el maestro en el último esclavo y, al mismo tiempo, cambie el último esclavo.Promovido a maestro.
Finalmente, aplique el registro de retransmisión diferencial correspondiente en otros esclavos y comience a replicar desde el nuevo maestro
3. Componente MHA
MHA Manager (nodo de administración) MHA Manager se puede implementar por separado en una máquina independiente para administrar múltiplesgrupo maestro-esclavo, también se puede implementar en un nodo esclavo.
Nodo MHA (nodo de datos) El nodo MHA se ejecuta enCada servidor MySQLEn MHA Manager, MHA Manager detectará periódicamente el nodo maestro en el clúster. Cuando el maestro falla, puede promover automáticamente el esclavo de datos al nuevo maestro y luego redirigir todos los demás esclavos al nuevo maestro. Todo el proceso de conmutación por error es completamente transparente para la aplicación.
4. Introducción a los componentes de MHA
MHA Manager
ejecuta algunas herramientas, como la implementación de la herramienta masterha_manager.Supervisar automáticamente MySQL Mastere implementaciónconmutación por error maestraOtras herramientas implementan manualmente la conmutación por error del maestro, la transferencia del maestro en línea, la verificación de conexión, etc. One Manager puede gestionar múltiples clústeres maestro-esclavo.
MHA Node
se implementa en todos los servidores que ejecutan MySQL, ya sean maestros o esclavos. Tiene tres funciones principales:
1) Guardar el registro binario.
Si se puede acceder al maestro fallido, se copiará el registro binario del maestro.
2) Aplicar el registro del relé diferencial.
Generar el registro del relé diferencial del esclavo con los datos más recientes. y luego aplicar el registro diferencial.
3) Borrar el registro de retransmisión
Eliminar el registro de retransmisión sin detener el hilo SQL
5. Introducción a las herramientas en la descripción de
la herramienta MHA (I) Manager
masterha_check_ssh comprueba la configuración SSH de MHAmasterha_check_repl comprueba la replicación de MySQLmasterha_manager inicia MHAmasterha_check_status detecta el estado de ejecución actual de MHA masterha_master_monitor monitorea si el maestro está inactivo masterha_master_switch controla la conmutación por error (automática o manual) masterha_conf_host agrega o elimina información del servidor configurado (ii) Herramienta de nodo descripción de la herramienta save_binary_logs guarda y copia el registro binario del maestro apply_diff_relay_logs identifica eventos de registro de
retransmisión
diferencial Y aplicado a otros Slavefilter_mysqlbinlog elimina eventos ROLLBACK innecesarios (MHA ya no usa esta herramienta) purge_relay_logs borra los registros de retransmisión (no bloqueará el hilo SQL)
Nota: Las herramientas de nodo generalmente se activan mediante scripts de MHA Manager y no requieren operación manual..
3. Arquitectura de implementación de MHA
1. Función de planificación de implementación
Nombre de host IP ID del servidor Función Comentarios MHA-Manager192.168.198.50mha.itcast.cn: nodo de administración Nodo MHA (maestro) 192.168.198.60master.itcast.cn10 Nodo de datos escribir MHA -Nodo (Slave1) 192.168.198.70slave1.itcast.cn20 nodo de datos leído MHA-Nodo (Slave2) 192.168.198.80slave2.itcast.cn30 nodo de datos leído
2, versión del sistema y software versión
del sistema Versión MySQL Versión MHA CentOS 7.6MySQL-5.7 .31mha4mysql-manager-0.57 mha4mysql-node-0.57
3. Inicialización del entorno del sistema
Paso 1: clonar la máquina, primero iniciar MASTER y luego iniciar SLAVE1, SLAVE2 y MHA a la vez
Paso 2: cambiar el nombre de host de la computadora
# hostnamectl set-hostname master.itcast.cn
# su
# hostnamectl set-hostname slave1.itcast.cn
# su
# hostnamectl set-hostname slave2.itcast.cn
# su
# hostnamectl set-hostname mha.itcast.cn
# su
Paso 3: cambie la dirección IP y vincule el nombre del host y la dirección IP al archivo /etc/hosts
# vim /etc/sysconfig/network-scripts/ifcfg-ens33
...
IPADDR=10.1.1.10、IPADDR=10.1.1.20、IPADDR=10.1.1.30、IPADDR=10.1.1.40
...
# systemctl stop NetworkManager
# systemctl disable NetworkManager
# systemctl restart network
Utilice MX para conectarse a 4 servidores y vincular la dirección IP y el nombre de host al archivo /etc/hosts
# vim /etc/hosts
10.1.1.10 master.itcast.cn
10.1.1.20 slave1.itcast.cn
10.1.1.30 slave2.itcast.cn
10.1.1.40 mha.itcast.cn
Paso 4: apague el firewall y SELinux
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# sed -i '/SELINUX=enforcing/cSELINUX=disabled' /etc/selinux/config
Paso 5: Configure la fuente
básica de YUM (omitida, se recomienda usar la fuente Tencent)
Después de configurar la fuente básica de Tencent, instale la fuente yum epel
[root@localhost ~]# yum -y install epel-release
Configurar la fuente de epel
# wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
# yum clean all
# yum makecache
Configure la fuente yum del almacén local de construcción propia
① Cargue el paquete de software mha-yum en el directorio /soft/mha
# mkdir -p /soft/mha
② Configure la fuente local de yum. Cuando usamos yum, podemos encontrar automáticamente el directorio del almacén mha-yum
# vim /etc/yum.repos.d/local.repo
[mha]
name=mha soft
baseurl=file:///soft/mha/mha-yum
enabled=1
gpgcheck=0
Pruebe la instalación de bibliotecas de software dependientes de MHA
yum -y install perl-DBD-MySQL \
perl-Config-Tiny \
perl-Time-HiRes \
perl-Mail-Sender \
perl-Mail-Sendmail \
perl-MIME-Base32 \
perl-MIME-Charset \
perl-MIME-EncWords \
perl-Params-Classify \
perl-Params-Validate.x86_64 \
perl-Log-Dispatch \
perl-Parallel-ForkManager \
net-tools
Paso 6: sincronización horaria ntpdate (muy importante)
fecha actual 182.92.12.11
4. Implemente el entorno de replicación maestro-esclavo de MySQL
Ubicación de instalación de la base de datos: /usr/local/mysql
Directorio de datos de la base de datos: /usr/local/mysql/data
Archivo de socket: /tmp/mysql.sock
Configuración del puerto: 3306
Ubicación del archivo de configuración: /usr/local/mysql/my.cnf (MySQL => directorio de instalación => directorio /etc)
☆ servidor principal MASTER
Paso 1: cargue el software en el directorio /root
Paso 2: use el script para instalar el software MySQL
# vim mysql.sh
#!/bin/bash
yum install libaio -y
tar -xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.31-linux-glibc2.12-x86_64 /usr/local/mysql
useradd -r -s /sbin/nologin mysql
rm -rf /etc/my.cnf
cd /usr/local/mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql &> /root/password.txt
bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
cp support-files/mysql.server /etc/init.d/mysqld
service mysqld start
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile
fuente mysql.sh
Paso tres: establecer la contraseña de MySQL
mysql-p
mysql> set password='123';
mysql> flush privileges;
Paso 4: realizar una inicialización segura
instalación_segura_mysql
Paso 5: escriba el archivo de configuración my.cnf en el host MASTER
# vim /usr/local/mysql/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/master.err
log-bin=/usr/local/mysql/data/binlog
server-id=10
character_set_server=utf8mb4
gtid-mode=on
log-slave-updates=1
enforce-gtid-consistency
reinicio del servicio mysqld
☆ Servidor esclavo SLAVE1/SLAVE2
Paso 1: cargue el software MySQL en el servidor
Paso 2: use un script para instalar MySQL, pero no se requiere inicialización
vim mysql.sh
#!/bin/bash
yum install libaio -y
tar -xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
rm -rf /usr/local/mysql
mv mysql-5.7.31-linux-glibc2.12-x86_64 /usr/local/mysql
useradd -r -s /sbin/nologin mysql
rm -rf /etc/my.cnf
cd /usr/local/mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
cp support-files/mysql.server /etc/init.d/mysqld
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile
fuente mysql.sh
Paso 3: use rsync para sincronizar el directorio de datos en el servidor MASTER con SLAVE1 y SLAVE2
MASTER:
# rm -rf /usr/local/mysql/data/auto.cnf
rsync -av /usr/local/mysql/data [email protected]:/usr/local/mysql/
rsync -av /usr/local/mysql/data [email protected]:/usr/local/mysql/
Paso 4: Configure el archivo my.cnf
SLAVE1 para SLAVE1 y SLAVE2:
vim /usr/local/mysql/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/slave1.err
log-bin=/usr/local/mysql/data/binlog
relay-log=/usr/local/mysql/data/relaylog
server-id=20
character_set_server=utf8mb4
gtid-mode=on
log-slave-updates=1
enforce-gtid-consistency
skip-slave-start
ESCLAVO2:
vim /usr/local/mysql/my.cnf
[mysqld]
basedir =/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/slave2.err
log-bin=/usr/local/mysql/data/binlog
relay-log=/usr/local/mysql/data/relaylog
server-id=30
character_set_server=utf8mb4
gtid-mode=on
log-slave-updates=1
enforce-gtid-consistency
skip-slave-start
Una vez completada la configuración, inicie el software MySQL.
# service mysqld restart
☆ Configurar la sincronización de datos maestro-esclavo
Paso 1: crear una cuenta de sincronización esclava en el servidor MAESTRO
mysql> create user 'slave'@'10.1.1.%' identified by '123456';
mysql> grant replication slave on *.* to 'slave'@'10.1.1.%';
mysql> flush privileges;
Paso 2: Cree una cuenta mha (para facilitar la supervisión MHA del estado de sincronización maestro-esclavo más adelante)
mysql> create user 'mha'@'10.1.1.40' identified by '123456';
mysql> grant all privileges on *.* to 'mha'@'10.1.1.40';
mysql> flush privileges;
Paso 3: Configurar la sincronización de datos maestro-esclavo en SLAVE1 y SLAVE2
mysql> change master to master_host='192.168.198.60',master_port=3306,master_user='slave',master_password='123456',master_auto_position=1;
mysql> start slave;
mysql> show slave status\G
¡En este punto, toda la configuración de un maestro y dos esclavos está completa!
5. Instalación del software MHA
(1) Instale el software en diferentes nodos
Nota: Instale en todos los nodos.nodo-mhapaquete de software, engestión de mhaLuego instale el paquete de software mha-manager
[root@mha ~]# yum –y install mha4mysql-node-0.57-0.el7.noarch.rpm
[root@master ~]# yum –y install mha4mysql-node-0.57-0.el7.noarch.rpm
[root@slave1 ~]# yum -y install mha4mysql-node-0.57-0.el7.noarch.rpm
[root@slave2 ~]# yum –y install mha4mysql-node-0.57-0.el7.n oarch.rpm
[root@mha ~]# yum –y install mha4mysql-manager-0.57-0.el7.noarch.rpm
Si el software dependiente se ha instalado con anticipación, puede usar rpm -ivh para instalarlo directamente
Configurar la confianza mutua ssh (inicio de sesión sin contraseña)
Nota:
En entornos de producción, el inicio de sesión remoto root en el servidor está casi prohibido, por lo que la contraseña ssh -El inicio de sesión gratuito debe realizarse en el usuario administrador. La configuración se realiza desde una perspectiva de seguridad.
El usuario administrador puede ser cualquier usuario común.
Este usuario común es utilizado por el nodo de administración de mha para acceder de forma remota a todos los hosts en el grupo de replicación de mysql y completar otras tareas.
Paso 1: Crear una cuenta de administrador común en todas las máquinas con una contraseña de 123.
# useradd admin
# echo 123|passwd --stdin admin
Paso 2: Configure el host mha para que el usuario administrador confíe mutuamente en el extremo mha de otros hosts :
[root@mha ~]# su - admin
[admin@mha ~]$ ssh-keygen -P "" -f ~/.ssh/id_rsa
[admin@mha ~]$ cd .ssh/
[admin@mha .ssh]$ ls
id_rsa id_rsa.pub
[admin@mha .ssh]$ mv id_rsa.pub authorized_keys
[admin@mha .ssh]$ for i in 10 20 30;do scp -r ../.ssh/ 10.1.1.$i:~/;done
Pruebe el inicio de sesión sin contraseña:
[admin@mha .ssh]$ ssh 10.1.1.10
[admin@mha .ssh]$ ssh 10.1.1.20
[admin@mha .ssh]$ ssh 10.1.1.30
Pregunta: SSH sin contraseña solo requiere copiar la clave pública, pero el código anterior copia todo el directorio .ssh. Respuesta: Debido a la confianza mutua de MHA, se requiere que no solo MHA pueda acceder a MASTER, SLAVE1 y SLAVE2 sin contraseñas, sino que MASTER también debe poder acceder a MHA, SLAVE1, SLAVE2 sin contraseñas... (iii) Configure los
permisos sudo del usuario administrador
en el host MAESTRO:
[root@master ~]# vim /etc/sudoers.d/admin
#User_Alias 表示具有sudo权限的用户列表; Host_Alias表示主机的列表
User_Alias MYSQL_USERS = admin
#Runas_Alias 表示用户以什么身份登录
Runas_Alias MYSQL_RUNAS = root
#Cmnd_Alias 表示允许执行命令的列表(命令需要使用完整路径)
Cmnd_Alias MYSQL_CMNDS = /sbin/ifconfig,/sbin/arping
MYSQL_USERS ALL = (MYSQL_RUNAS) NOPASSWD: MYSQL_CMNDS
Distribuya este permiso a SLAVE1 y SLAVE2 (cuando ocurre una falla, el servidor esclavo también puede configurar su propio VIP)
[root@master ~]# for i in 20 30;do scp /etc/sudoers.d/admin 10.1.1.$i:/etc/sudoers.d/;done
Pruebe si el usuario administrador puede montar VIP (VIP solo se puede montar en la máquina MAESTRA)
# su - admin
[admin@master ~]$ sudo /sbin/ifconfig ens33:1 10.1.1.100 broadcast 10.1.1.255 netmask 255.255.255.0
[admin@master ~]$ sudo /sbin/arping -fqc 5 -w 5 -I ens33 -s 10.1.1.100 -U 10.1.1.10
[admin@master ~]$ ip a
Suplemento
:
arping: un comando utilizado para enviar solicitudes ARP a otros hosts en la LAN. Puede usarse para probar si se ha utilizado una IP en la LAN.
-f
: Salir después de recibir el primer paquete de respuesta.
-q: modo tranquilo, no se muestra ningún resultado.
-c: Detener después de enviar el recuento especificado de paquetes ARP REQUEST. Si se especifica el parámetro -w, se esperará la misma cantidad de paquetes ARP REPLY hasta que se agote el tiempo de espera.
-w: especifica un tiempo de espera en segundos. Arping saldrá después de alcanzar el tiempo especificado, independientemente de cuántos paquetes se envíen o reciban durante el período. En este caso, arping no se detendrá después de enviar los paquetes de conteo (-c) especificados, sino que esperará hasta que se agote el tiempo de espera o hasta que se haya respondido a los paquetes de conteo enviados antes de salir.
-I: especifique el nombre del dispositivo, el nombre del dispositivo de red utilizado para enviar paquetes ARP REQUEST.
-D: modo de detección de direcciones duplicadas, utilizado para detectar si hay un conflicto de direcciones IP, si no hay conflicto de direcciones IP, se devuelve 0.
-s: establece la dirección de recurso IP para enviar paquetes ARP
-U: modo ARP irrazonable (forzado) para actualizar la información local en la lista ARP CACHE en otros hosts, no se requiere respuesta.
-h: muestra la página de ayuda.
(IV) Crear archivos de configuración relacionados con MHA
Servidor MHA: crear directorio de trabajo
[root@mha ~]# mkdir /etc/mha/
[root@mha ~]# mkdir -p /data/mha/masterha/app1
[root@mha ~]# chown -R admin. /data/mha
Cree el archivo de configuración local mha:
[root@mha ~]# vim /etc/mha/app1.conf
[server default]
Establecer usuario y contraseña de monitoreo (modificación 1)
user=mha
password=123
Establecer el usuario y la contraseña de replicación en el entorno de replicación (modificación 2)
repl_user=slave
repl_password=123
Establezca el nombre de usuario de inicio de sesión para ssh (modificación 3)
ssh_user=admin
Establezca el intervalo de tiempo para monitorear la base de datos principal y enviar paquetes de ping. El valor predeterminado es 3 segundos. Si no hay respuesta después de tres intentos, la conmutación por error se realizará automáticamente.
ping_interval=3
Establecer el directorio de trabajo de mgr
manager_workdir=/data/mha/masterha/app1
Establezca el directorio donde mysql master guarda binlog para que MHA pueda encontrar el registro binario del maestro (modificación 4)
master_binlog_dir=/usr/local/mysql/data
Configure el archivo pid del maestro (modificación 5)
master_pid_file=/usr/local/mysql/data/master.itcast.cn.pid
Establezca el directorio donde mysql master guarda binlog cuando ocurre un cambio (cree este directorio en mysql master)
remote_workdir=/data/mysql/mha
Configure el archivo de registro mgr (cuando MHA encuentre problemas, mire principalmente este registro)
manager_log=/data/mha/masterha/app1/app1-3306.log
Si hay un problema entre MHA y el monitoreo maestro, MHA Manager intentará iniciar sesión en el maestro desde el esclavo1 y el esclavo2.
secondary_check_script=/usr/bin/masterha_secondary_check -s 192.168.198.70 -s 192.168.198.80 --user=admin --port=22 --master_host=192.168.198.60 --master_port=3306
Configure el script de conmutación cuando se realice una conmutación por error automática (cuando ocurre una falla, monte automáticamente VIP en SLAVE1 o SLAVE2)
master_ip_failover_script="/etc/mha/master_ip_failover.sh 192.168.198.100 1"
Configurar el script de conmutación para conmutación manual
#master_ip_online_change_script="/etc/mha/master_ip_online_change.sh 192.168.198.100 1"
Configurar un script para apagar el host fallido después de que ocurra una falla
# shutdown_script="/etc/mha/power_manager"
[server1]
hostname=192.168.198.60
port= 3306
candidate_master=1
[server2]
hostname=192.168.198.70
port= 3306
candidate_master=1
[server3]
hostname=192.168.198.80
port= 3306
candidate_master=1
(5) Cargue el script correspondiente al directorio /etc/mha, luego cambie la información de configuración y autorice
[root@mha ~]# ls /etc/mha/
app1.conf master_ip_failover.sh
Nota: En el contenido del script, el nombre de la tarjeta de red y el usuario de la conexión deben cambiarse a admin.
my $vip = shift;
my $interface = 'ens33'; 网卡名(38行)
my $key = shift;
...
sub stop_vip() {
my $ssh_user = "admin"; 用户名(110行)
print "=======$ssh_stop_vip==================\n";
`ssh $ssh_user\@$orig_master_host \" $ssh_stop_vip \"`;
}
[
root@mha ~]# chmod +x /etc/mha/master_ip_*
6. Detectar la confianza mutua SSH y el estado maestro-esclavo de MySQL
MHA:
# su - admin
Detectando confianza mutua SSH
[admin@mha ~]$ masterha_check_ssh --conf=/etc/mha/app1.conf
Verificar el estado del clúster
[admin@mha ~]$ masterha_check_repl --conf=/etc/mha/app1.conf
7. Verifique el estado de MHA y luego ejecute MHA (se inicia el monitoreo)
MHA:
[admin@mha ~]$ masterha_check_status --conf=/etc/mha/app1.conf
app1 is stopped(2:NOT_RUNNING).
Habilite
el monitoreo de MHA Manager (clave, significa iniciar MHA):
[admin@mha ~]$ nohup masterha_manager --conf=/etc/mha/app1.conf --remove_dead_master_conf --ignore_last_failover &
Si se informa un error aquí,
Verifique nuevamente el estado de monitoreo:
[admin@mha ~]$ masterha_check_status --conf=/etc/mha/app1.conf
app1 (pid:8913) is running(0:PING_OK), master:10.1.1.10
Nota
:
- Si es normal, se mostrará "PING_OK", de lo contrario se mostrará "NOT_RUNNING", lo que indica que la monitorización MHA no está habilitada.
- Utilice el usuario administrador para comenzar a monitorear; de lo contrario, se informará la denegación de permiso.
- Detenga manualmente el comando de monitoreo: masterha_stop --conf=/etc/mha/app1.conf
¡En este punto, nuestro MHA ha sido configurado!
4. Prueba automática de conmutación por error
1. Instale herramientas de prueba en el servidor MASTER
[root@master ~]# yum -y install sysbench
2. Insertar datos de prueba
Cree una prueba de biblioteca de pruebas en el servidor maestro
mysql> create database test charset utf8mb4;
Query OK, 1 row affected (0.17 sec)
mysql> grant all on *.* to 'mha'@'localhost' identified by '123';
Query OK, 0 rows affected (0.14 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.11 sec)
mysql> exit
Bye
[root@master ~]# sysbench /usr/share/sysbench/oltp_read_only.lua \
--mysql-host=192.168.198.60 --mysql-port=3306 --mysql-user=mha \
--mysql-password=123456 --mysql-socket=/tmp/mysql.sock \
--mysql-db=test --db-driver=mysql --tables=1 \
--table-size=100000 --report-interval=10 --threads=128 --time=120 prepare
mysql> select count(*) from sbtest1;
+----------+
| count(*) |
+----------+
| 100000 |
+----------+
1 row in set (0.01 sec)
3. Tome instantáneas de
MHA, MASTER, SLA VE1, SLAVE2
4. Simule la falla del servidor MASTER
Servidor MHA: registro de monitoreo
[root@mgr ~]# tail -f /data/mha/masterha/app1/app1-3306.log
Servidor MAESTRO:
parada del servicio mysqld
El registro de MHA muestra el resultado:
conmutación por error:
Deriva VIP:
Preguntas frecuentes
1. Error en el archivo de configuración del nodo de administración
[root@mgr ~]# cat /etc/mha/app1.conf
[server default]
Establezca el usuario y la contraseña de monitoreo. Este usuario es la cuenta de administración de la base de datos creada en el maestro y tiene todos los permisos.
user=mha
password=123
Establezca el usuario y la contraseña de replicación en el entorno de replicación. Tenga en cuenta que se requieren los siguientes permisos:
#REPLICATION SLAVE和REPLICATION CLIENT
repl_user=slave
repl_password=123
Establecer el nombre de usuario de inicio de sesión para ssh
ssh_user=admin
....
[server1]
hostname=10.1.1.10
port= 3306
candidate_master=1
[server2]
hostname=10.1.1.20
port= 3306
candidate_master=1
[server3]
hostname=10.1.1.30
port= 3306
candidate_master=1
Nota: Asegúrese de configurar la IP y el número de puerto
2 correctos. Configuración de solo lectura de datos al configurar MHA
Solución: configurar esclavos
El servidor es de solo lectura.
mysql> set @@global.read_only=1;
Consulta correcta, 0 filas afectadas (0,00 segundos)
mysql
> muestra variables como 'read_only';
±--------------±--- ---+
| Nombre_variable | Valor |
±--------------±------+
| solo lectura | ON |
±------------ --±------+
1 fila en el conjunto (0,00 segundos)
3.
Contraseña incorrecta para copiar permisos de usuario
Motivo:
El usuario esclavo de replicación no tiene permisos relevantes, ESCLAVO DE REPLICACIÓN yCLIENTE DE REPLICACIÓN
No se crea ningún usuario de replicación en el servidor esclavo
4. Otros errores
El clúster MHA requiere al menos 2 esclavos, por lo que si solo hay un esclavo, la verificación fallará.
VIP: la IP virtual
configura VIP para que después de que el host maestro en el clúster MHA deje de funcionar, el cliente no necesite modificar la dirección de la base de datos y pueda cambiar sin problemas a través de VIP.
Tenga en cuenta que el script de deriva VIP integrado solo se puede utilizar en el mismo segmento de red, no entre segmentos de red. Inserte el fragmento de código aquí.
https://note.youdao.com/s/1GI1m8z4