MySQL主从复制在CentOS和Windows上的配置

MySQL主从复制是一种数据复制技术,可以将数据从一个MySQL数据库服务器(主服务器)同步到另一个MySQL数据库服务器(从服务器)。在本文中,我们将介绍如何在CentOS和Windows操作系统上配置MySQL主从复制。

环境准备

在开始配置之前,确保已经在两台服务器上安装了MySQL数据库,并且网络连接正常。

  • 主服务器:IP地址为192.168.1.1,用户名为root,密码为123456
  • 从服务器:IP地址为192.168.1.2,用户名为root,密码为123456

在主服务器上配置

  1. 修改主服务器的配置文件my.cnf,开启binlog日志和设置server-id
```sql
# 在my.cnf中添加以下配置
server-id = 1
log_bin = mysql-bin

2. 重新启动MySQL服务

```markdown
```bash
sudo systemctl restart mysqld

3. 在主服务器上创建用于从服务器复制的用户,并赋予相应权限

```markdown
```sql
CREATE USER 'repl'@'192.168.1.2' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.2';

4. 查看主服务器状态

```markdown
```sql
SHOW MASTER STATUS;

#### 在从服务器上配置

1. 修改从服务器的配置文件`my.cnf`,设置server-id

```markdown
```sql
# 在my.cnf中添加以下配置
server-id = 2

2. 重新启动MySQL服务

```markdown
```bash
sudo systemctl restart mysqld

3. 启动从服务器复制进程,并连接到主服务器

```markdown
```sql
CHANGE MASTER TO
MASTER_HOST='192.168.1.1',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;
START SLAVE;

4. 查看从服务器状态

```markdown
```sql
SHOW SLAVE STATUS \G;

#### 验证主从复制

在主服务器上创建一个数据库表,并插入数据,然后在从服务器上查看是否同步成功。

```markdown
```sql
# 在主服务器上创建表
CREATE DATABASE testdb;
CREATE TABLE testdb.users (id INT PRIMARY KEY, name VARCHAR(50));
INSERT INTO testdb.users VALUES (1, 'Alice');

# 在从服务器上查询表数据
USE testdb;
SELECT * FROM users;

#### 状态图

```mermaid
stateDiagram
    [*] --> Configured
    Configured --> Running
    Running --> Paused
    Paused --> Running
    Running --> [*]

通过以上步骤,您已经成功在CentOS和Windows上配置了MySQL主从复制,实现了数据同步的功能。在实际生产环境中,可以根据实际情况进行调整和优化,以满足业务需求。希望本文对您有所帮助,谢谢阅读!