一, MySQL 主从同步 (为后面实现读写分离, MMM 高可用集群做基础)
主库配置: 主库的 IP 地址: 192.168.4.111
1, 首先给用户授权, 用来实现同步时, 从库连接主库的用户名:
- grant replication slave on *.* to [email protected]"%" identified by "123456";
- // 授权 tongbu 这个用户在所有的从库上都有复制权限, 并设置密码
2, 启用 binlog 日志: VIM /etc/my.cnf
- server_id=111 // 指定编号
- log-bin=master111 // 指定日志文件名, 启用 binlog 日志
- binlog-format="mixed" // 日志类型
3, 重启数据库服务:
4, 查看正在使用 binlog 日志文件: show master status\G;
从库配置: 从库的 IP 地址: 192.168.4.112
1, 查看自己是否是主从数据库
show master status; show slave status;
2, 测试主数据库的授权用户是否有效, 看能否登陆
3, 在配置文件里面添加 server_id=112, 并重启服务
4, 在 MySQL 命令行下, 更改配置, 配置主库相关信息
- change master to
- -> master_host='192.168.4.111', // 主库的地址
- -> master_user='tongbu', // 连接的用户名
- -> master_password='123456', // 密码
- -> master_log_file='111-bin.000001', // 日志文件名称
- -> master_log_pos=154; // 偏移量
5, 启动从服务: start slave;
- 6,show slave status\G // 查看从的状态, 确认下面的两行都是 yes
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
7, 测试同步效果:
在主服务器上, 创建库, 表, 插入记录, 查看从服务器上是否数据一样.
二, 关于日志文件的一些信息
1, 几个常见的日志文件
- 112-relay-bin.000006 // 中继日志文件
- 112-relay-bin.index // 中继日志文件索引
- relay-log.info // 中继日志
- master.info // 主库信息
2, 如何把从库恢复成独立的服务器:
stop slave; reset slave all;
3, 关于线程和程序的一些信息
IO 线程: 把 master 库的 binlog 日志内容记录到本机的 relay-binlog 日志里
sql 线程: 把 relay-binlog 日志里的 sql 命令写到本机的库
- show processlist; Binlog Dump // 查看主上运行的程序, 然后可以看到 binlog dump 程序
- show processlist; Connect // 可以查看从库上运行的程序
三, 主从同步常用参数 (/etc/my.cnf)
1, 主库: binlog_do_db = 数据库名 // 只允许同步的库
binlog_ignore_db = 数据库名 // 不同步的库
2, 从库: 开启级联复制 (log_slave_updates) 主从从结构的第一台从库上配置
同步个别的数据库 (replicate_do_db = 数据库名)
不同步的库 (replicate_ignore_db = 数据库名)
来源: http://www.bubuko.com/infodetail-3107269.html