Instalación de la base de datos Linux MYSQL8.0 --> Configuración del nodo maestro-esclavo MYSQL --> Tutorial detallado de conmutación maestro-esclavo MYSQL

Tabla de contenido

1. Preparación

1. Apague el firewall y el modo seguro SELINUX

2. Cargue el paquete de instalación en /usr/local/mysql

2. Instalar la base de datos MYSQL

1. Descomprima el paquete y comience la instalación.

2. Instalar en secuencia

 3. Inicie e ingrese a la configuración de la base de datos.

3. Configuración del nodo maestro-esclavo MYSQL

1. Configuración del host (maestro)

2. Configurar la biblioteca esclava (esclava) 

3. Configuración de la asociación maestro-esclavo

3. Cambio maestro-esclavo MySQL


1. Preparación

Estoy usando el paquete RPM para instalarlo, puedes ir al sitio web oficial de mysql para descargarlo o usar el paquete desde mi disco de red.

Descargue el paquete de instalación del sitio web oficial: MySQL :: Descargar MySQL Community Server (versiones archivadas)

Enlace del disco de red de Baidu: https://pan.baidu.com/s/1vyHmyJNojTetuFZKnLNYPw?pwd=aqws 
Código de extracción: aqws

1. Apague el firewall y el modo seguro SELINUX

#关闭防火墙并设置开机不启动
systemctl stop firewalld
 
systemctl disable firewalld
 
#关闭SElinux安全模式
setenforce 0
    
#设置永久关闭selinux
 
vi /etc/selinux/config
 
#修改SELINUX:
SELINUX=disabled
 
#重启生效
reboot

2. Cargue el paquete de instalación en /usr/local/mysql

#创建一个放包的路径
mkdir -p /usr/local/mysql

2. Instalar la base de datos MYSQL

1. Descomprima el paquete y comience la instalación.

#进入包在的路径
cd  -p /usr/local/mysql

#解压
tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar

2. Instalar en secuencia

rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm

#安装此包时会报错(看下图)
#是原来自带的,卸了即可
rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm

#卸载
yum remove mysql-libs

#再次安装
rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm

#把一些依赖安装一下
sudo yum install -y libaio

yum install -y net-tools.x86_64


#继续安装包
rpm -ivh mysql-community-libs-compat-8.0.28-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm

#最后一一个包 要语句后面加上 --nodeps --force,安装时忽
略依赖关系
rpm -ivh mysql-community-server-8.0.28-1.el7.x86_64.rpm --nodeps --force

 3. Inicie e ingrese a la configuración de la base de datos.

#启动
systemctl start mysqld

#查看初始密码(要先启动才有)
cat /var/log/mysqld.log |grep password

#登陆并修改密码(密码自取,有大小写字令母符号数字)
mysql -u root -p

alter user 'root'@'localhost' identified by 'password';

#配置远程连接
use mysql;

update user set host='%' where user='root';

#刷新才生效
flush privileges;

#最好再重启一下数据库
systemctl restart mysqld

3. Configuración del nodo maestro-esclavo MYSQL

Prepare dos bases de datos MYSQL independientes. Si la base de datos esclava se clona de la base de datos principal, las direcciones IP de las dos bases de datos y auto.cnf
El UUID debe cambiarse para que sea diferente.
Si no es un clon, ignóralo.
Simplemente modifique el UUID de una biblioteca, siempre que los UUID de las dos bibliotecas sean diferentes.
#执行命令查看 auto.cnf 文件的位置
find -name auto.cnf  #执行命令后没有的话,看最后一行
vi 到上面命令查询到的地址,修改 uuid 的值,随便改,只要不一样就可以了
#server-uuid=sgsgsg455sfsfgsg4
#修改后,进库查看主从两库的 UUID 是不是不一样
mysql -u root -p
show variables like '%server_uuid%';


#如改后还是一样,在/var/lib/mysql 可能也有一个 auto.cnf,修改一下即可
vi /var/lib/mysql/auto.cnf

#修改后,进库查看主从两库的 UUID 是不是不一样
mysql -u root -p
show variables like '%server_uuid%';

1. Configuración del host (maestro)

进入 /etc/my.cnf 添加或修改配置
vi /etc/my.cnf

#添加配置如下
#在[mysqld]下添加
server-id = 1 #节点 ID,确保唯一。建议放在[mysqld]下的首行,不然可能会有报错
log-bin = mysql-bin #binlog 日志位置

#以下参数选填(可不填)
binlog_format = mixed #binlog 日志格式,mysql 默认采用 statement,建议使用 mixed
expire_logs_days = 7 #binlog 过期清理时间
max_binlog_size = 100m #binlog 每个日志文件大小
binlog_cache_size = 5m #binlog 缓存大小
max_binlog_cache_size= 256m #最大 binlog 缓存大
binlog-ignore-db=mysql #不生成日志文件的数据库,可用逗号拼接
binlog-do-db= 数据库名 #需要同步的数据库
binlog-ignore-db = 数据库名 #不需要同步的数据库

Reiniciar el servicio MYSQL

service mysqld restart

Ingrese a la base de datos y vea la información maestra. Anote la información del Archivo y la Posición, que se utilizarán más adelante. Puede copiarlos y colocarlos en el documento de texto primero.

mysql -u root -p

show master status;

2. Configurar la biblioteca esclava (esclava) 

vi /etc/my.cnf

#在[mysqld]下添加
server-id=2 #节点 ID,确保唯一。建议放在[mysqld]下的首行,不然可能会有报错
log-bin= mysql-bin #binlog 日志位置
relay-log= slave-relay-bin #必须开启,从主数据库同步的 binlog 会写入到该目录下
Reiniciar el servicio MYSQL
service mysqld restart

3. Configuración de la asociación maestro-esclavo

#从库进入数据库
mysql -u root -p

#停掉从库的服务,一定要停掉服务再去执行下面的命令
stop slave;

#配置关联主库(master),
#MASTER_HOST : 要连接的主服务器的 ip 地址
#MASTER_USER : 要连接的主服务器的用户名
#MASTER_PASSWORD : 设置要连接的主服务器的密码
#以下两个填主库执行 show master status; 得到的信息
#MASTER_LOG_FILE :要连接的主服务器的 bin 日志的日志名称
#MASTER_LOG_POS :要连接的主服务器的 bin 日志的记录位置

change master to master_host='主节点IP', master_port=3306,master_user='root',master_password='数据库密码',master_log_file='mysql-bin.000001',master_log_pos=157;

#启动
start slave

#查看主从同步状态,没有报错启动成功
show slave status \G;
Las dos opciones siguientes deben ser Sí.

 Prueba: conéctese a la base de datos principal, cree una base de datos y tablas para ver si está sincronizada con la base de datos esclava.

3.  Cambio maestro-esclavo MySQL

1. Cambio manual
#切断对主库的数据传输,进入主库备库设置只读

mysql -u root -p

set global read_only=ON;
set global super_read_only=ON;

#从库查看主从同步状态

show slave status \G

Los dos lugares en la imagen también son Sí.

#比对主备两边的 GTID 是否一致(要是一样的)

select @@global.gtid_executed;

Todos estos están vacíos. Después de las pruebas, no encontré ningún impacto en el cambio de biblioteca maestro-esclavo y la sincronización de datos.

#从库停掉复制进程,并清空主从信息

stop slave;
reset slave all;

#从库关闭只读开启读写,转为新主库

set global read_only=off;
set global super_read_only=off;

#查看新主库信息, File 和 Position 信息要记下,后面要用,可复制出来先放 txt 文档中先

show master status;

#停掉原主库的服务
stop slave;

#配置关联主库(master),
#MASTER_HOST : 要连接的主服务器的 ip 地址
#MASTER_USER : 要连接的主服务器的用户名
#MASTER_PASSWORD : 设置要连接的主服务器的密码
#以下两个填主库执行 show master status; 得到的信息
#MASTER_LOG_FILE :要连接的主服务器的 bin 日志的日志名称
#MASTER_LOG_POS :要连接的主服务器的 bin 日志的记录位置

change master to master_host='主节点IP', master_port=3306,master_user='root',master_password='数据库密码',master_log_file='mysql-bin.000001',master_log_pos=1736;


#启动
start slave;

#查看主从同步状态,没有报错启动成功
show slave status \G;

Los dos lugares en la imagen deberían ser Sí.

#旧主库关闭只读,开启读写,转为从库

set global read_only=off;
set global super_read_only=off;

Prueba: conéctese a la nueva base de datos primaria y cree tablas para ver si están sincronizadas con la base de datos esclava.

Supongo que te gusta

Origin blog.csdn.net/weixin_68547003/article/details/131510934
Recomendado
Clasificación