网站搜索

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


MySQL复制是一个过程,其中数据从一台服务器自动复制或实时复制到另一台备份服务器上。复制提供冗余和容错功能,即使主服务器出现故障,数据仍然可以恢复,让用户高枕无忧。

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

先决条件

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

Master = 173.82.120.14
Slave  = 173.82.115.165

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

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

1.最新版本的MySQL 8.x已经包含在RHEL 8的默认存储库中,您可以使用以下命令安装它百胜命令。

yum -y install @mysql

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

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

systemctl enable mysqld
systemctl start mysqld

接下来,您需要通过运行安全脚本来保护您的 MySQL 安装,该脚本附带多个基于安全的操作,例如设置 root 密码、删除匿名用户、禁止 root 远程登录、删除测试数据库和重新加载权限。

mysql_secure_installation

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

步骤3:配置MySQL主服务器

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

sudo vim /etc/my.cnf

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

bind-address =173.82.120.14
server-id = 1
log_bin =mysql-bin

最后,重新启动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> SHOW MASTER STATUS\G

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

第四步:配置MySQL从服务器

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

sudo vim  /etc/my.cnf

在配置文件的 mysqld 部分下添加以下行。

bind-address =173.82.115.165
server-id = 2
log_bin =mysql-bin

重新启动服务器。

sudo systemctl restart mysqld

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

sudo mysql -u root -p

首先,停止复制线程。

mysql> STOP SLAVE;

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

mysql> CHANGE MASTER TO
    -> MASTER_HOST='173.82.120.14' ,
    -> MASTER_USER='replica' ,
    -> MASTER_PASSWORD='Jupiter@2030' ,
    -> MASTER_LOG_FILE='mysql-bin.000002' ,
    -> MASTER_LOG_POS=939;

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

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

mysql> START SLAVE;

第5步:测试MySQL主从复制

至此,主从服务器的配置就完成了。我们现在需要验证配置是否有效以及复制是否可以进行。

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

sudo mysql -u root -p

创建示例数据库。

mysql> CREATE DATABASE replication_database;

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

sudo mysql -u root -p

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

mysql> SHOW DATABASES;

如果您看到创建的数据库,则说明 MySQL 主从复制 设置有效。

结论

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