MySQL 主从服务器的配置步骤
目录
环境
- Master:192.168.1.110,RHEL 5.8,MySQL 5.5.28
- Slave:192.168.1.113,RHEL 5.8,MySQL 5.5.28
主库配置
编辑主库 /etc/my.cnf 的 [mysqld] 段:
[mysqld]
log-bin=mysql-bin # 打开二进制日志
binlog-do-db=test # 记录特定库
server-id=1 # 主从ID不能相同
binlog-ignore-db=mysql # 不记录的库
sync_binlog=1 # 日志有更新时刷新到磁盘
创建复制用户
在主库中创建用于从库连接的复制用户:
mysql -u root -p
USE mysql;
GRANT REPLICATION SLAVE, FILE ON *.* TO 'Think'@'192.168.1.113' IDENTIFIED BY 'mysql';
FLUSH PRIVILEGES;
查看主库状态
SHOW MASTER STATUS\G;
输出示例:
File: mysql-bin.000002
Position: 107
Binlog_Do_DB: test
Binlog_Ignore_DB: mysql
重要:记录 File 和 Position,从库需要用到。
从库配置
编辑从库 /etc/my.cnf 的 [mysqld] 段:
[mysqld]
log-bin=mysql-bin
server-id=2 # 不同于主库
replicate-do-db=test # 复制特定库
replicate-ignore-db=mysql # 不复制的库
log-slave-updates # 从库日志包含来自主库的更新
sync_binlog=1
slave-net-timeout=10 # 从库连接超时时间
从库连接主库
STOP SLAVE;
CHANGE MASTER TO
master_host='192.168.1.110',
master_user='Think',
master_password='mysql',
master_log_file='mysql-bin.000002',
master_log_pos=107;
START SLAVE;
验证从库状态
SHOW SLAVE STATUS\G;
关键输出字段:
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.110
Master_User: Think
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 107
确保 Slave_IO_State 显示 “Waiting for master to send event”,表示复制正常运行。