分享最新优惠信息
购买主机更加划算

RHEL、Rocky和AlmaLinux系统设置MySQL数据库复制实例演示

数据复制是跨多个服务器复制数据以提高数据可用性并增强应用程序的可靠性和性能的过程。在MySQL数据库复制中,数据从数据库从主服务器实时复制到其节点(从服务器),以确保数据的一致性,并提供备份和冗余服务。

在本文中,小编将主要演示如何在基于RHEL的发行版(例如CentOS、Fedora、Rocky Linux和AlmaLinux)中设置MySQL(主从)复制方法。

MySQL复制设置实例

这里设置的主从数据库服务器如下:

MySQL Master(主MySQL服务器) - 10.128.0.14
MySQL Slave(从MySQL服务器) - 10.128.15.211

步骤一、在主从服务器上安装MySQL数据库

首先需要在主服务器和从服务器上安装MySQL数据库。

$ sudo dnf install @mysql

在Rocky Linux中安装MySQL

安装完成后,确定启动数据库服务器。

$ sudo systemctl start mysqld

设置系统启动或重新启动时自动启动。

$ sudo systemctl enable mysqld

此后,确认MySQL数据库服务器正在运行,如下命令:

$ sudo systemctl status mysqld

检查MySQL运行状态

步骤二、在主从服务器上启用MySQL保护

下一步是保护主服务器和从服务器上的MySQL数据库安全,这是因为默认设置是不安全的,并且存在一些容易被黑客利用的漏洞。

因此,要强化MySQL安全,请运行以下命令:

$ sudo mysql_secure_installation

首先需要设置MySQL根密码,尽量设置复杂一些,最好是超过8个字符,混合大写、小写、特殊和数字字符。

在 Rocky Linux中保护MySQL

对于剩余的提示,可以输入'Y'以便将数据库服务器调整为系统推荐设置。

确认MySQL设置

在主从节点服务器上完成MySQL的安装和安全防护后,接下来是配置主节点。

步骤三、配置主节点(服务器)MySQL

下一步是配置主节点服务器并授予从节点服务器访问它的权限。首先,需要编辑mysql-server.cnf配置文件。

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

在该[mysqld]部分下添加以下几行。

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

完成后,保存更改并退出,然后重启MySQL服务器。

$ sudo sysemctl restart mysqld

接下来,登录到MySQL。

$ sudo mysql -u root -p

执行以下命令创建一个数据库用户,该用户将用于绑定主从服务器进行复制。

mysql> CREATE USER 'replica'@'10.128.15.211' IDENTIFIED BY 'P@ssword321';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'10.128.15.211';

创建数据库复制用户

应用更改并退出MySQL服务器。

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

验证主站的状态。

mysql> SHOW MASTER STATUS\G

验证MySQL状态

记下文件名和位置,稍后在设置从属进行复制时将需要它。在本文中,文件名 asmysql-bin.000001和 Position 1232

步骤4:配置从节点(服务器)

现在,回到从节点服务器,再次编辑mysql-server.cnf配置文件。

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

和之前一样,将以下这些行粘贴到该[mysqld]部分下。更改IP地址以对应从站的 IP。此外,分配不同的server-id。在这里,我们为其分配了值2

bind-address	 = 10.128.15.211
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='10.128.0.14' ,
     MASTER_USER='replica' ,
     MASTER_PASSWORD='P@ssword321' ,
     MASTER_LOG_FILE='mysql-bin.000001' ,
     MASTER_LOG_POS=1232;

请注意,MASTER_LOG_FILEMASTER_LOG_POS标志对应于步骤三结束时主节点服务器的文件和位置值。

MASTER_HOSTMASTER_USERMASTER_PASSWORD分别对应于主IP地址,数据库复制用户以及数据库复制用户的密码。

配置 MySQL 从属复制

然后启动从属复制线程:

mysql> START SLAVE;

启动从属复制线程

步骤四、测试MySQL主从复制

现在,要测试主从节点之间的复制是否正常,请登录主节点MySQL数据库服务器:

$ sudo mysql -u root -p

创建一个测试数据库,本文的测试数据库称为replication_db

mysql> CREATE DATABASE replication_db;

验证数据库是否存在

mysql> SHOW DATABASES;

在 MySQL Master 上创建数据库

现在,登录从MySQL数据库服务器并确认replication_db数据库是否存在。从下面的输出结果中,可以看到数据库已经存在,这表明已从主节点复制到从节点。

mysql> SHOW DATABASES;

检查 MySQL 主从复制

总结

以上就是在RHEL、Rocky和AlmaLinux系统中设置MySQL数据库复制的实例方法,过程不算太复制,比较容易设置。

通过MySQL数据库复制功能,可以将数据库从主服务器很方便的复制到从服务器上面,仅对于个人站长而言,可以很方便的进行数据库备份和恢复。

总之,以上设置过程仅供参考,有任何问题欢迎交流讨论。

未经允许不得转载:惠主机 » RHEL、Rocky和AlmaLinux系统设置MySQL数据库复制实例演示