Diseño de arquitectura de alta disponibilidad semi-MHA de MySQL

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
:

  1. 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.
  2. Utilice el usuario administrador para comenzar a monitorear; de lo contrario, se informará la denegación de permiso.
  3. 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

Supongo que te gusta

Origin blog.csdn.net/qq_52183856/article/details/131938239
Recomendado
Clasificación