MySQL 主从搭建详细步骤

MySQL 主从复制是指在两个或多个 MySQL 服务器之间同步数据的过程。在主从复制中,一个服务器充当主服务器,负责处理写操作和更新数据,而其他服务器则作为从服务器,负责读取数据。

在本篇文章中,我们将介绍如何搭建 MySQL 主从复制,以实现数据的同步和备份。

步骤一:配置主服务器

首先,在主服务器上进行配置。假设主服务器的 IP 地址为 192.168.1.1,用户名为 root,密码为 password

  1. 修改 MySQL 配置文件 my.cnf,开启二进制日志功能。
```shell
[mysqld]
log-bin=mysql-bin
server-id=1

2. 重启 MySQL 服务。

```markdown
```shell
sudo systemctl restart mysql

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;

记下 File 和 Position 的值,后续从服务器配置需要使用。

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

接下来,在从服务器上进行配置。假设从服务器的 IP 地址为 `192.168.1.2`,用户名为 `root`,密码为 `password`。

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

```markdown
```shell
server-id=2

2. 重启 MySQL 服务。

```markdown
```shell
sudo systemctl restart mysql

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=123456;

4. 启动从服务器复制。

```markdown
```sql
START SLAVE;

5. 查看从服务器状态。

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

如果 `Slave_IO_Running` 和 `Slave_SQL_Running` 都为 `Yes`,则说明主从复制已经搭建成功。

## 状态图

```mermaid
stateDiagram
    [*] --> 主服务器配置
    主服务器配置 --> 从服务器配置
    从服务器配置 --> 启动复制
    启动复制 --> [*]

结论

通过以上步骤,我们成功搭建了 MySQL 主从复制,实现了数据的同步和备份。主从复制不仅可以提高数据的可靠性和可用性,还可以分担主服务器的读写压力,提升系统性能。希望本文对您有所帮助!