MySQL主从复制在CentOS和Windows上的配置
MySQL主从复制是一种数据复制技术,可以将数据从一个MySQL数据库服务器(主服务器)同步到另一个MySQL数据库服务器(从服务器)。在本文中,我们将介绍如何在CentOS和Windows操作系统上配置MySQL主从复制。
环境准备
在开始配置之前,确保已经在两台服务器上安装了MySQL数据库,并且网络连接正常。
- 主服务器:IP地址为192.168.1.1,用户名为root,密码为123456
- 从服务器:IP地址为192.168.1.2,用户名为root,密码为123456
在主服务器上配置
- 修改主服务器的配置文件
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主从复制,实现了数据同步的功能。在实际生产环境中,可以根据实际情况进行调整和优化,以满足业务需求。希望本文对您有所帮助,谢谢阅读!