如何在RHEL 8上设置MySQL主从复制

在本教程中,您将学习如何在RHEL 8 Linux上配置和设置MySQL主从复制。

MySQL Replication是一个过程,来自一台服务器的数据会自动复制或复制到另一台备份服务器上。 复制提供了冗余和容错功能,使用户可以放心,即使主服务器出现故障,数据仍然可以恢复。

在本教程中,您将学习如何在RHEL 8 Linux上配置和设置MySQL主从复制。

先决条件

在设置中,我们将有两台运行RHEL 8的服务器,其中包含以下IP地址。

Master = 173.82.120.14
Slave  = 173.82.115.165

现在让我们继续看看如何在RHEL 8 Linux上配置MySQL主从复制设置。

第1步:在主服务器和从服务器上安装MySQL

RHEL存储库不包含MySQL包。 因此,我们将从他们的官方Yum Repository安装MySQL 因此,我们将使用以下yum命令在两台服务器上安装MySQL。

$ sudo yum localinstall https://dev.mysql.com/get/mysql57-community-rlease-el7-11.noarch.rpm
安装MySQL Yum存储库

安装MySQL Yum存储库

接下来运行以下命令在RHEL 8 Linux上安装MySQL服务器。

$ sudo yum install mysql-community-server

第2步:在主服务器和从服务器上保护MySQL

安装完成后,您现在应该启动刚安装的MySQL服务,并在每次启动服务器时自动启动它。 因此,请使用以下命令。

$ sudo systemctl enable mysqld
$ sudo systemctl start mysqld

您应该注意,每次在任何计算机上首次启动MySQL服务器时,它都会为root用户提供临时密码。 因此,要查找初始密码,请键入以下内容。

$ sudo grep 'temporary password' /var/log/mysqld.log
找到MySQL密码

找到MySQL密码

接下来,您需要通过运行以下脚本来强化或保护MySQL数据库服务器。

$ sudo mysql_secure_installation

输入您刚刚在上一步中挖掘的MySQL root密码,然后按Enter 然后,系统将提示您是否要更改默认密码。 为方便起见,我们鼓励您设置一个您可以在以后调用的强密码。

更改MySQL默认密码

更改MySQL默认密码

继续提示的其余部分并对所有问题回答“ Yes ,以便将服务器设置为最佳安全实践。

安全MySQL服务器安装

安全MySQL服务器安装

第3步:配置MySQL主服务器

要从服务器配置开始,请键入以下命令继续并打开MySQL配置文件。

$ sudo vim /etc/my.cnf

mysqld部分中,添加如下所示的行。

bind-address =173.82.120.14
server-id = 1
log_bin =mysql-bin
配置MySQL主服务器

配置MySQL主服务器

最后,重启MySQL服务。

$ sudo systemctl restart mysqld

现在我们要创建一个复制用户。 因此,以root用户身份登录MySQL主服务器并提供密码。

$ sudo mysql -u root -p

现在运行以下命令来创建副本用户,同时授予对用户的从属访问权限。 请记住使用您的机器IP地址。

mysql> CREATE USER 'replica'@'173.82.115.165' IDENTIFIED BY 'strong_password';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'173.82.115.165';
创建MySQL复制用户

创建MySQL复制用户

现在,您将键入以下命令,该命令将打印二进制文件名和位置。

mysql> SHOW MASTER STATUS\G
检查MySQL主复制状态

检查MySQL主复制状态

请记住记下生成的文件名msql-bin.000002及其位置939

第4步:配置MySQL从服务器

就像设置主服务器的过程一样,您应该对mysql从服务器配置文件进行以下更改。

$ sudo vim /etc/my.cnf

mysqld部分下的配置文件中附加以下行。

bind-address =173.82.115.165
server-id = 2
log_bin =mysql-bin
配置MySQL从服务器

配置MySQL从服务器

重启服务器。

$ sudo systemctl restart mysqld

现在,下一步是将从服务器配置为从主服务器进行复制。 登录MySQL服务器。

$ sudo mysql -u root -p
<./pre>
First, stop the replication threads.
mysql> STOP SLAVE;
停止MySQL Slave Server

停止MySQL Slave Server

现在,运行以下查询,将从服务器配置从服务器进行复制。

mysql> CHANGE MASTER TO
    -> MASTER_HOST='173.82.120.14' ,
    -> MASTER_USER='replica' ,
    -> MASTER_PASSWORD='[email protected]' ,
    -> MASTER_LOG_FILE='mysql-bin.000002' ,
    -> MASTER_LOG_POS=939;
配置MySQL Slave以从Master复制数据

配置MySQL Slave以从Master复制数据

确保使用正确的IP用户名和密码。 另外,使用从主服务器获得的文件名和位置。

最后,键入以下命令以启动从属线程。

mysql> START SLAVE;
启动MySQL Slave Server

启动MySQL Slave Server

第5步:测试MySQL主从复制

此时,您已完成主服务器和从属服务器的配置。 我们现在需要验证配置是否正常以及是否可以进行复制。

为此,请前往服务器并登录MySQL数据库服务器。

$ sudo mysql -u root -p

创建示例数据库。

mysql> CREATE DATABASE replication_database;
创建MySQL复制数据库

创建MySQL复制数据库

现在前往Slave服务器再次登录MySQL数据库服务器。

$ sudo mysql -u root -p

现在使用以下命令列出所有数据库。

mysql> SHOW DATABASES;
验证MySQL主从复制

验证MySQL主从复制

如果您看到创建的数据库,则MySQL Master Slave Replication设置可以正常工作。

结论

复制是一个非常简单的过程,可以轻松完成。 在本指南中,您已经了解了如何在RHEL 8 Linux中创建MySQL主服务器到从服务器的复制。