mysql主从怎么搭建
时间 : 2023-07-28 22:42:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

搭建MySQL主从复制(Master-Slave Replication)环境能够提高系统的可用性和容灾能力。在主从复制环境中,主服务器(Master)负责处理所有的写操作并将更新的数据同步到从服务器(Slave)。从服务器只负责读取数据,提供读取请求的服务,不处理写操作。

以下是搭建MySQL主从复制环境的步骤:

1. 安装MySQL:

- 在主服务器和从服务器上分别安装MySQL数据库。你可以根据操作系统的不同选择适合的安装方法。

2. 配置主服务器:

- 打开主服务器的配置文件my.cnf(或my.ini)。

- 找到`[mysqld]`章节,在该章节下添加以下配置:

```

server-id = 1

log_bin = /var/log/mysql/mysql-bin.log

binlog_do_db = YOUR_DATABASE_NAME

```

这些配置的作用分别是:

- `server-id`:设置主服务器的唯一标识,每个服务器的ID必须唯一。

- `log_bin`:指定二进制日志文件的位置,该文件用来记录主服务器上的所有更新操作。

- `binlog_do_db`:指定需要同步到从服务器的数据库名称。

- 保存修改后的配置文件,并重启主服务器。

3. 配置从服务器:

- 打开从服务器的配置文件my.cnf(或my.ini)。

- 找到`[mysqld]`章节,在该章节下添加以下配置:

```

server-id = 2

relay-log = /var/log/mysql/mysql-relay-bin.log

log_slave_updates = 1

```

这些配置的作用分别是:

- `server-id`:设置从服务器的唯一标识,每个服务器的ID必须唯一。

- `relay-log`:指定中继日志文件的位置,该文件用来记录主服务器传输给从服务器的更新操作。

- `log_slave_updates`:允许从服务器将接收到的更新操作也记录到自己的二进制日志中。

- 保存修改后的配置文件,并重启从服务器。

4. 创建主服务器与从服务器之间的复制账号:

- 登录主服务器的MySQL命令行客户端,执行以下SQL语句创建一个用于复制的账号:

```sql

CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';

GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';

FLUSH PRIVILEGES;

```

其中,`replication_user`是账号名称,`password`是账号密码。请根据实际情况进行修改。

5. 备份主服务器的数据库并导入到从服务器:

- 在主服务器上执行`mysqldump`命令备份数据库:

```bash

mysqldump -u root -p YOUR_DATABASE_NAME > backup.sql

```

其中,`YOUR_DATABASE_NAME`是要备份的数据库名称。

- 将备份文件`backup.sql`复制到从服务器上。

- 在从服务器上执行`mysql`命令导入数据库:

```bash

mysql -u root -p YOUR_DATABASE_NAME < backup.sql

```

6. 配置从服务器复制主服务器:

- 登录从服务器的MySQL命令行客户端,执行以下SQL语句:

```sql

CHANGE MASTER TO MASTER_HOST='主服务器IP地址', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=0;

```

其中,`主服务器IP地址`替换为主服务器的实际IP地址,`replication_user`和`password`是步骤4中创建的账号和密码。

`mysql-bin.000001`是主服务器的二进制日志文件名,可以使用以下命令查询主服务器的二进制日志文件:

```sql

SHOW MASTER STATUS;

```

将命令输出的File字段值替换为`MASTER_LOG_FILE`的值。

- 执行以下SQL语句启动从服务器的复制过程:

```sql

START SLAVE;

```

7. 检查主从复制状态:

- 登录从服务器的MySQL命令行客户端,执行以下SQL语句:

```sql

SHOW SLAVE STATUS\G

```

查看输出结果,确保`Slave_IO_Running`和`Slave_SQL_Running`的值都为`Yes`,表示主从复制已成功启动并在运行中。

至此,MySQL主从复制环境搭建完成。你可以在主服务器上进行写操作,然后在从服务器上进行读操作来验证主从复制是否正常工作。