binlog 日志(即 binary log),是二进制日志文件。它有两个作用,
1、增量备份,即只备份新增的内容;
2、用于主从复制等,即主节点维护了一个 binlog 日志文件,从节点从 binlog 中同步数据。我们可以通过 binlog 日志恢复数据。
前言:
- 测试环境:
- 主节点:
- Windows 版:192.168.99.2
- Linux 版: 192.168.99.3
- 从节点:
- Linux 版: 192.168.99.5
一、主机端(主从复制)配置
1.1、登录MySQL,查看binlog日志的状态:
1.1.1、Windows 版:
输入 show variables like '%log_bin%';
查看到binlog日志为OFF关闭状态;
1.1.2、Linux版:
输入 show variables like '%log_bin%';
查看到binlog日志为OFF关闭状态;
1.2、开启 binlog 日志 并 配置 主机(主从复制)文件:
1.2.1、Windows 版:
嵌入代码:
[mysqld]
log-bin=mysql-bin
# The TCP/IP Port the MySQL Server will listen on
port=3306
server-id=1
log-bin="C:\Program Files\MySQL\MySQL Server 5.5\data\mysqlbin"
log-err="C:\Program Files\MySQL\MySQL Server 5.5\data\mysqlerr"
1.2.2、Linux 版:
嵌入代码,保存并强制退出::wq!
server-id = 1
log-bin = /var/lib/mysql/mysql-bin
1.3、重启 MySQL 服务:
1.3.1、Windows 版:
1.3.2、Linux 版:
Linux 重启 mysql 服务:service mysqld restart;
1.4、主机(主从复制)建立账户并授权从机(主从复制):
1.4.1、Windows 版:
嵌入代码:
grant replication slave on *.* to 'zhangsan'@'192.168.99.5' identified by '123456';
flush privileges;
1.4.2、Linux 版:
嵌入代码:
create user 'zhangsan'@'192.168.99.5' identified by '123456';
grant all privileges on *.* to 'zhangsan'@'192.168.99.5' with grant option;
flush privileges;
二、从机端(主从复制)配置:
2.1、配置 从机(主从复制)文件::
2.1.1、Linux 版:
嵌入代码,保存并强制退出::wq!
server-id = 2
2.2、重启 MySQL 服务:
2.2.1、Linux 版:
Linux 重启 mysql 服务:service mysqld restart;
2.3、从机(主从复制)配置连接主机(主从复制):
2.3.1、Linux 版:
2.3.2、查看主机的 File 与 Posittion 信息:
查看主机的 File 与 Posittion 信息:show master status;
2.3.3、填写 主机的 File 与 Posittion 信息:
嵌入代码
CHANGE MASTER TO MASTER_HOST='192.168.99.2',
MASTER_USER='zhangsan',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysqlbin.000005',
MASTER_LOG_POS=2101;
关闭/开启从机
stop slave;
start slave;
2.4、查看 从机(主从复制)连接:
2.4.1、Linux 版:
查看 从机(主从复制)连接:show slave status;
2.4.1.1、完成如下图:
2.4.1.2、错误如下图:
解决方案:
stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;
• 由 ChiKong_Tam 写于 2020 年 9 月 23 日