系统版本:Oracle Linux Server release 6.9
主服务器:
IP:192.168.232.101
从服务器:
IP:192.168.232.100
步骤:
具体操作如下:
1.主库开启binlog功能,并设置server_id
编辑vi /etc/my.cnf文件,并 [mysqld] 节点下加入如下内容:
2.创建从库用于复制用的数据库账号
grant replication slave on *.* to [email protected]'%.%.%.%' identified by '123'
3.为当前数据库做全备
mysqldump -uroot -p -A -B -x --master-data=2 > rep.sql
4.设置从库server_id
编辑vi /etc/my.cnf文件,并 [mysqld] 节点下加入如下内容:
5.恢复主库的全备到从库
mysql -uroot -p < rep.sql
6.配置从库master的信息
进入MySQL中执行如下命令
CHANGE MASTER TO
MASTER_HOST='192.168.232.101',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='123'
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=5660;
参数说明:
MASTER_HOST:主服务器 IP 地址
MASTER_PORT:主服务器端口
MASTER_USER:用于主从复制的账号
MASTER_PASSWORD:主从复制账号的密码
MASTER_LOG_FILE=:binlog文件(全备时主库最新的binlog文件名)
MASTER_LOG_POS=:binlog位置(全备时主库最新的binlog文件中的备份点)
7.开启同步
从库执行如下命令:
Mysql> Start slave
8.状态检查
从库执行如下命令:
Mysql> show slave status \G
如果Slave_IO_Running、Slave_SQL_Running 都为YES,则表示成功。
从服务器开启log_slave_updates 这个参数是,从服务器可以作为其他服务器的主服务器,也就是:主 à 从 à 从 模式;
场景一、主宕机且无法开机
从库操作:
场景二、主从正常,手动切换
切换操作同场景一
主转从操作同初次配置一样;
PS:
# 主执行:
show master status # 记录File、Position
# 从执行:
Mysql> select master_pos_wait(File, Position);
可以使用此查询得到同步间隙为多少