视窗苹果电脑软件设置安全生产力Linux安卓性能配置苹果自定义设备管理iPhone设置 全部

如何在 Debian 上设置 MySQL 复制

已编辑 4 几天前 通过 ExtremeHow 编辑团队

DebianMySQL复制数据库服务器设置SQLLinux开源系统管理命令行界面

如何在 Debian 上设置 MySQL 复制

翻译更新 4 几天前

MySQL 复制是一种允许您自动将数据从一个 MySQL 数据库服务器(主服务器)复制到一个或多个 MySQL 数据库服务器(从服务器)的过程。这种设置对于提高性能、可靠性和负载平衡非常有用。在本指南中,我们将逐步介绍在 Debian Linux 服务器上设置 MySQL 复制所需的步骤。我们将涵盖从准备服务器、配置复制设置以及验证复制是否正常工作的所有内容。让我们开始吧。

1. 了解 MySQL 复制

MySQL 复制允许在数据库服务器之间异步复制数据。主服务器称为主服务器,任何接收复制数据的次要服务器称为从服务器。这种架构在许多场景中非常有利,例如读密集型数据库环境、数据备份和恢复过程、数据分析以及地理分布的数据中心。

2. 准备

在开始设置 MySQL 复制之前,请确保满足以下条件:

3. 设置主服务器

我们将首先配置主服务器,该服务器将保存原始数据并将更新发送到从服务器。

步骤 1:配置 MySQL 主服务器

首先打开主服务器上的 MySQL 配置文件。此文件通常位于 /etc/mysql/mysql.conf.d/mysqld.cnf。使用文本编辑器如 nano 编辑它:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

查找配置文件中的 [mysqld] 部分,并修改或添加以下行:

[mysqld] log-bin = mysql-bin server-id = 1

log-bin 指令启用二进制日志,它是复制所需的,因为它记录数据库的所有更改。server-id 对于复制设置中的每个服务器必须是唯一的正整数。在本例中,我们将 1 用作主服务器的 ID。

编辑后,保存并关闭文件。如果使用 nano,可以通过按 CTRL + X,然后 Y,再按 ENTER 来完成。

步骤 2:重启主服务器上的 MySQL

要应用我们所做的更改,请重新启动 MySQL 服务:

sudo systemctl restart mysql

步骤 3:创建复制用户

接下来,登录到主服务器上的 MySQL 命令行以创建从服务器可用于复制连接的用户帐户。使用以下命令:

mysql -u root -p

登录后,执行以下 SQL 命令以创建一个复制用户并授予其权限。替换 'replica_user''password' 为您选择的用户名和密码:

CREATE USER 'replica_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%'; FLUSH PRIVILEGES;

这些命令创建了一个具有复制权限的新 MySQL 用户。使用 '%' 作为主机允许从任意 IP 地址连接。

步骤 4:获取主服务器状态

在进行从服务器配置之前,您需要记录当前的主日志文件和状态。使用以下命令获取此信息:

SHOW MASTER STATUS;

请注意 FilePosition 值,因为在设置从服务器时将需要它们。输出可能类似于:

+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 123 | | | +------------------+----------+--------------+------------------+

4. 设置从服务器

配置完主服务器后,下一步是设置从服务器。

步骤 1:配置 MySQL 从服务器

与主服务器配置相同,打开每个从服务器上的 MySQL 配置文件,编辑 /etc/mysql/mysql.conf.d/mysqld.cnf

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

确保 [mysqld] 部分具有以下设置:

[mysqld] server-id = 2 relay-log = mysql-relay-bin

server-id 必须是唯一且不同于复制设置中的任何其他服务器。在这里,我们使用 2relay-log 配置有助于处理来自主服务器的复制流。

编辑后,如前所述保存并关闭配置文件。

步骤 2:重启从服务器上的 MySQL

重新启动从服务器上的 MySQL 服务以应用更改:

sudo systemctl restart mysql

步骤 3:设置从服务器连接到主服务器

登录到从服务器上的 MySQL 命令行客户端:

mysql -u root -p

登录后,使用 CHANGE MASTER TO 命令将从服务器连接到主服务器。确保将 'master_host''replica_user''password''mysql-bin.X'position_number 替换为相应的主服务器 IP 地址、复制用户名、密码、日志文件和先前获取的位置:

CHANGE MASTER TO MASTER_HOST = 'master_host', MASTER_USER = 'replica_user', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.X', MASTER_LOG_POS = position_number;

配置主服务器信息后,使用以下命令启动从服务器进程:

START SLAVE;

步骤 4:验证从服务器状态

要检查从服务器是否已正确设置并连接到主服务器,请执行:

SHOW SLAVE STATUS\G;

查看输出中的 Slave_IO_RunningSlave_SQL_Running 字段。两者都应显示为 Yes,表示从服务器正常工作。您还应查看 Relay_Master_Log_FileExec_Master_Log_Pos 的值,它们确认了复制的进度。

5. 测试复制设置

一旦您设置好了主服务器和从服务器,最好测试复制设置,以确保一切都按预期工作。

步骤 1:测试数据同步

要测试复制,请尝试在主服务器上插入一个简单的数据项,并查看它是否出现在从服务器上。

在主服务器上,登录到 MySQL 并创建一个简单的数据库和表:

mysql -u root -p
CREATE DATABASE testdb; USE testdb; CREATE TABLE testtable (id INT PRIMARY KEY AUTO_INCREMENT, value VARCHAR(255)); INSERT INTO testtable (value) VALUES ('Replication Test');

步骤 2:验证从服务器上的数据

登录到从服务器上的 MySQL 命令行并检查数据是否已被复制:

mysql -u root -p
USE testdb; SELECT * FROM testtable;

您应能看到主表中插入的行现在出现在从表中。如果复制正常工作,您会看到:

+----+------------------+ | id | value | +----+------------------+ | 1 | Replication Test | +----+------------------+

6. 常见问题排查提示

如果在过程中或之后出现问题,可以考虑以下常见的故障排除步骤:

结论

MySQL 复制在 Debian 上的配置,如本文所示,涉及到对主服务器和从服务器进行配置,以处理和重现跨多个系统的数据库更改。这种设置可以大大提高可靠性和数据访问效率。虽然设置复制需要一些努力并需要了解数据库的架构,但遵循这些说明应使该过程变得可管理和成功。

请记住,定期监控 MySQL 服务器并定期检查复制数据的一致性和性能,以确保系统运行平稳和高效,始终是个好主意。

如果你发现文章内容有误, 您可以


评论