linux下mysql数据库单向同步配置方法分享


在Linux环境下配置MySQL数据库的单向同步,通常我们会使用MySQL的复制(Replication)功能。MySQL复制允许数据从一个MySQL数据库服务器(主服务器)复制到一个或多个MySQL数据库服务器(从服务器)。这里,我将简要介绍如何配置单向同步。

### 步骤 1: 准备环境

确保你有两个MySQL服务器实例:一个作为主服务器(Master),另一个作为从服务器(Slave)。两个服务器都应该是MySQL 5.6或更高版本,因为较新版本在复制功能上有更好的支持和改进。

### 步骤 2: 配置主服务器

1. **编辑主服务器的配置文件**(通常是`my.cnf`或`my.ini`,位置可能因安装而异):


   [mysqld]
   server-id = 1  # 确保每个服务器的ID是唯一的
   log-bin = mysql-bin  # 开启二进制日志
   binlog_do_db = your_database_name  # 如果需要,指定要复制的数据库
   # 如果需要忽略某些数据库,可以使用binlog_ignore_db
   

重启MySQL服务以应用更改。

2. **创建复制用户**:

在主服务器上,登录MySQL并执行以下SQL命令来创建一个用于复制的用户:


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

注意:在生产环境中,不要使用`'%'`作为主机名,而应该指定从服务器的IP地址或主机名以提高安全性。

3. **查看主服务器的二进制日志文件和位置**:


   SHOW MASTER STATUS;
   

记录下`File`和`Position`的值,稍后在从服务器上配置时会用到。

### 步骤 3: 配置从服务器

1. **编辑从服务器的配置文件**:


   [mysqld]
   server-id = 2  # 确保ID与主服务器不同
   relay-log = mysqld-relay-bin  # 可选,指定中继日志的位置和名称
   read-only = 1  # 设置为只读(可选,取决于你的需求)
   

重启MySQL服务。

2. **在从服务器上配置复制**:

登录到从服务器的MySQL,并执行以下SQL命令来配置复制:


   CHANGE MASTER TO
     MASTER_HOST='master_host_ip',
     MASTER_USER='replicator',
     MASTER_PASSWORD='password',
     MASTER_LOG_FILE='recorded_log_file_name',
     MASTER_LOG_POS=recorded_log_position;

   START SLAVE;
   

将`master_host_ip`、`recorded_log_file_name`和`recorded_log_position`替换为步骤2中从主服务器获取的值。

3. **检查从服务器的复制状态**:


   SHOW SLAVE STATUS\G
   

查看`Slave_IO_Running`和`Slave_SQL_Running`是否都为`Yes`,以及是否有错误信息。

### 注意事项

- 确保防火墙和网络设置允许从服务器访问主服务器的MySQL端口(默认是3306)。

- 复制配置中的密码和其他敏感信息应妥善保管。

- 定期检查复制状态,确保数据同步无误。

以上就是MySQL数据库在Linux环境下配置单向同步的基本步骤。