Mysql5.7主从搭建

实验环境: Centos7 虚拟机两台, Mysql5.7, 

1.安装Mysql: 两台机器都安装。(有必要的话关闭防火墙)

2.主节点配置: 

1) 创建用户:

create user '用户名'@'192.168.1.%' identified by '密码';

2)分配权限:

grant replication slave on *.* to '用户名'@'192.168.1.%' identified by '密码';

3)开启binlog日志:

   查看是否开启: show variables  like 'log_bin'; (默认关闭)

 编辑/etc/my.cnf 添加如下配置:

server-id=1 # 节点名 多节点不能重复
log-bin=/var/lib/mysql/mysql-bin # 开启bin_log 指定文件名

重启: systemctl restart mysqld

会生成mysql-bin.000001文件和mysql-bin.index文件

连接mysql

查看binlog日志: show binlog events; (show binlog events in 'mysql-bin.000001';)

刷新日志文件,产生新的日志文件: flush logs;

查看当前使用的日志文件:  show master status;

查看所有日志文件:  show master logs;

清空所有日志文件(谨慎操作): reset master;

通过日志还原数据:
    mysqlbinlog /var/lib/mysql/mysql-bin.000001 | mysql -uroot -p

    mysqlbinlog /var/lib/mysql/mysql-bin.000001 --start-position 4 --stop-position 1626 | mysql -uroot -p
    (position可以从show binlog evnents获取)

3.从节点配置:

1)编辑/etc/my.cnf 添加如下配置:

server-id=2 # 节点之间不能重复
relay-log=/var/lib/mysql/relay-bin # 从节点日志

2)修改mysql server-uuid:

   编辑 /var/lib/mysql/auto.cnf (保证每个节点都不一样)

3)重启从节点

4)指定主节点ip,端口,用户...

   登录mysql指定master:

change master to master_host='主节点ip',master_port=3306,master_user='用户名',master_password='密码',master_log_file='mysql-bin.000001',master_log_pos=0;

5)重启从节点
        查看从节点状态:  show slave status; 
            Slave_IO_Running和Slave_SQL_Running两个字段都是Yes表示正常

        注: 从节点通过binlog日志文件同步数据,如果binlog日志中没有的操作将不能同步。

4.测试

在主节点上创建数据库,创建表,插入数据,再到从节点上查看是否同步过来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值