Mysql8.0主从复制搭建
时间: 2025-04-19 21:49:40 浏览: 21
### 设置和配置 MySQL 8.0 主从复制
#### 准备工作
为了成功设置MySQL主从复制,需先完成一些准备工作。
确保主服务器和从服务器都已正确安装并运行MySQL服务。按照给定的操作指南,在两台不同的机器上分别执行如下命令来获取并解压MySQL软件包[^1]:
```bash
cd /server/tools && wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-el7-x86_64.tar.gz
tar xvf mysql-8.0.30-el7-x86_64.tar.gz -C /data
ln -sv /data/mysql-8.0.30-el7-x86_64 /data/mysql
```
接着,创建专门用于管理MySQL的服务账户,并调整权限以便于后续操作:
```bash
useradd work
chown -R work.work /data/mysql*
su - work
```
#### 配置主服务器
编辑主服务器上的`my.cnf`文件,加入必要的参数以启用二进制日志功能以及指定唯一的`server-id`:
```ini
[mysqld]
server-id=1
log-bin=mysql-bin
```
重启MySQL服务使更改生效。登录至MySQL控制台,创建一个专供从服务器用来同步数据的用户账号,并赋予相应的权限[^3]:
```sql
CREATE USER 'replica'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
FLUSH PRIVILEGES;
```
最后,查询当前二进制日志的位置信息,这些信息将在稍后的从服务器配置过程中被用到:
```sql
SHOW MASTER STATUS;
```
#### 配置从服务器
同样地修改从服务器端的`my.cnf`文件中的`server-id`值,保证其不同于任何其他节点。这里假设我们设定为2[^2]:
```ini
[mysqld]
server-id=2
relay-log=mysql-relay-bin
read-only=ON
```
启动或重启MySQL进程让新设置起效。进入MySQL客户端界面,通过CHANGE MASTER语句指明上游主机的信息及其二进制日志坐标点,之后开启I/O线程与SQL线程负责抓取变更事件并向本地应用重放它们:
```sql
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='replica',
MASTER_PASSWORD='yourpassword',
MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=log_position_value;
START SLAVE;
```
验证状态是否正常运作可通过下面这条指令检查slave_IO_running 和 slave_SQL_Running 是否均为Yes表示一切顺利:
```sql
SHOW SLAVE STATUS\G
```
以上就是完整的MySQL 8.0版本下的主从复制部署流程概述。
阅读全文
相关推荐


















