centos环境运维mysql主从同步搭建
时间: 2025-03-14 19:04:14 浏览: 30
### 配置 CentOS 环境下的 MySQL 主从复制
#### 1. 安装并初始化 MySQL
确保主服务器 (Master) 和从服务器 (Slave) 均已安装相同版本的 MySQL。可以通过以下命令检查版本一致性:
```bash
mysql --version
```
如果未安装 MySQL,则可以使用以下命令进行安装[^2]:
```bash
sudo yum install mysql-server
```
启动 MySQL 并设置开机自启:
```bash
sudo systemctl start mysqld
sudo systemctl enable mysqld
```
#### 2. 修改 Master 的配置文件
编辑 `/etc/my.cnf` 文件,添加或修改以下内容以启用二进制日志功能,并指定唯一的 `server-id`:
```ini
[mysqld]
log-bin=/var/lib/mysql/binlog
server-id=1
gtid_mode=ON
enforce_gtid_consistency=1
```
保存后重启 MySQL 服务以使更改生效:
```bash
sudo systemctl restart mysqld
```
#### 3. 创建用于复制的用户
登录到 Master 数据库实例中,执行以下 SQL 命令来创建一个具有复制权限的用户[^5]:
```sql
CREATE USER 'rep'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'rep'@'%';
FLUSH PRIVILEGES;
```
查看当前 Master 的状态以便稍后在 Slave 上配置:
```sql
SHOW MASTER STATUS\G;
```
记录下 `File` 和 `Position` 字段的值。
#### 4. 修改 Slave 的配置文件
同样,在 Slave 节点上编辑 `/etc/my.cnf` 文件,设定不同的 `server-id`:
```ini
[mysqld]
server-id=2
relay-log=mysql-relay-bin
log-slave-updates=1
read-only=1
```
完成后也需重新加载 MySQL 进程:
```bash
sudo systemctl restart mysqld
```
#### 5. 设置 Slave 同步参数
进入 Slave 的 MySQL 控制台,运行下面语句连接至 Master[^4]:
```sql
CHANGE MASTER TO
MASTER_HOST='192.168.100.101',
MASTER_USER='rep',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='binlog_filename_from_step_3',
MASTER_LOG_POS=log_position_number_from_step_3;
START SLAVE;
```
验证 Slave 是否正常工作:
```sql
SHOW SLAVE STATUS\G;
```
确认 `Slave_IO_Running` 和 `Slave_SQL_Running` 均显示为 Yes 即表示成功建立同步关系。
#### 注意事项
- 如果遇到错误,请仔细核对每一步骤中的 IP 地址、用户名以及密码等信息是否匹配实际环境。
- 对于高可用架构考虑加入心跳检测机制或者利用第三方工具如 MHA 来增强系统的稳定性与可靠性。
阅读全文
相关推荐


















