在没有特殊需求的情况下,一般会使用MySQL到MySQL的数据同步,配合项目中多数据源来进行读写分离,减少获取锁的频率和损耗
Master配置
开启binlog配置
在my.inf文件中添加
1
2
3 log_bin=ON
log_bin_basename=/var/lib/mysql/mysql-bin
log_bin_index=/var/lib/mysql/mysql-bin.index
或者1
log-bin=/var/lib/mysql/mysql-bin
然后重新启动
查看二进制日志的状态信息
1 | show master status; |
创建用于同步的用户
1 | CREATE USER 'username' IDENTIFIED BY '123456'; |
赋予同步用户SLAVE权限
1 | GRANT REPLICATION SLAVE ON *.* TO 'username'; |
Slave配置
开启binlog配置
同Master不再描述
连接Master
1 | CHANGE MASTER TO |
确认slave状态
1 | show slave status; |
字段说明
- Slave_IO_State:同步状态
- Master_Host: 主服务器地址
- Master_User: 同步用户
- Master_Port: 主服务器端口
- Connect_Retry: 每次链接断开之后重新链接主服务器之前休眠的时间
- Master_Log_File: 当前读取的binlog文件名
- Read_Master_Log_Pos: 当前读取的binlog文件position
- Relay_Log_File: 回放binlog文件名
- Relay_Log_Pos: 回放binlog文件position
- Relay_Master_Log_File: 回放binlog文件对应master的binlog文件
- Slave_IO_Running: Slave与MasterIO通讯进程开启状态
- Slave_SQL_Running: Slave进行mysql同步的进程
- Exec_Master_Log_Pos: 对比Mastersql执行到的位置
- Seconds_Behind_Master: 主从库的延时时间
启动 slave
1
start slave;
确认slave状态
1 | show slave status; |