1. 概述
Linux主从同步是一种用于在多个服务器之间实现数据同步的技术。当一个服务器作为主服务器,其他服务器作为从服务器时,主服务器上的数据更改会自动同步到从服务器上。这种配置可以提高数据的可用性和可靠性,同时也可以减轻主服务器的负载。本文将介绍如何配置Linux服务器的主从同步。
2. 准备工作
2.1 安装和配置MySQL
首先,要进行主从同步,我们需要在服务器上安装并配置MySQL数据库。以下是在Ubuntu服务器上安装MySQL的步骤:
sudo apt update
sudo apt install mysql-server
安装完成后,我们需要编辑MySQL配置文件以启用二进制日志。打开MySQL配置文件:
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
找到以下行,并将其取消注释:
#log_bin = /var/log/mysql/mysql-bin.log
保存并关闭文件后,重新启动MySQL服务:
sudo systemctl restart mysql
至此,MySQL的安装和配置已经完成。
2.2 确定主服务器和从服务器
在配置主从同步之前,我们需要确定哪些服务器将充当主服务器和从服务器。主服务器是数据变更的源头,而从服务器用于接收和应用这些变更。
假设我们选择的主服务器IP地址为192.168.1.100,从服务器IP地址为192.168.1.101。
3. 配置主服务器
3.1 创建用于主从同步的用户
首先,我们需要在主服务器上创建一个用于主从同步的MySQL用户,并赋予适当的权限。
登录MySQL:
mysql -u root -p
创建新用户:
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';
将用户赋予复制权限:
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
刷新权限:
FLUSH PRIVILEGES;
3.2 启用二进制日志
在主服务器上,我们需要启用二进制日志以记录数据变更。登录MySQL,并执行以下命令:
SET GLOBAL binlog_format = 'ROW';
SET GLOBAL log_bin = ON;
查看二进制日志的文件名和位置:
SHOW MASTER STATUS;
记录下File和Position的值,我们将在配置从服务器时使用。
4. 配置从服务器
4.1 设置主服务器信息
在从服务器上,我们需要设置主服务器的信息,以便从服务器能够与主服务器建立连接并接收数据变更。
登录MySQL,并执行以下命令(将<master_ip>替换为主服务器的IP地址,将<master_user>和<master_password>替换为在主服务器上创建的用户的用户名和密码):
CHANGE MASTER TO MASTER_HOST='', MASTER_USER='', MASTER_PASSWORD='';
将主服务器的二进制日志文件名和位置填入:
MASTER_LOG_FILE='', MASTER_LOG_POS=;
4.2 启动从服务器复制
在从服务器上,启动复制进程:
START SLAVE;
检查从服务器状态:
SHOW SLAVE STATUS\G;
如果状态中的Slave_IO_Running和Slave_SQL_Running都显示为"YES",则表示主从同步已经成功配置。
5. 测试主从同步
为了验证主从同步是否正常工作,我们可以在主服务器上进行一些数据更改,并检查从服务器是否相应地进行了更新。
在主服务器上,创建数据库和表:
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE test_table (id INT PRIMARY KEY, data VARCHAR(100));
INSERT INTO test_table VALUES (1, 'Data 1');
INSERT INTO test_table VALUES (2, 'Data 2');
在从服务器上,查询刚创建的表,应该能看到相同的数据:
USE test_db;
SELECT * FROM test_table;
如果从服务器中能够查询到相同的数据,则表示主从同步配置成功。
6. 总结
通过以上步骤,我们成功地配置了Linux服务器的主从同步。这种配置可以使数据实时同步到从服务器上,并提高系统的可用性和可靠性。在实际应用中,您还可以根据不同的需求进行高级配置和优化。