Mysql二进制日志
简介Mysql二进制日志文件是非常重要,记录了所有对MySQL数据库的修改事件,包括增删改查事件和对表结构的修改事件,所以本文主要记录Mysql二进制文件如何开启和类型。
作用:记录了所有对MySQL数据库的修改事件,包括增删改查事件和对表结构的修改事件
二进制日志的开启
show variables like "%log_bin%";

如果没有开启,就去配置my.cnf,在[mysqld]下增加
log-bin = binlog
log-bin-index = binlog.index
格式:
binlog_format={STATEMENT|ROW|MIXED}
- 1、语句(statement):默认的记录格式,基于段
- 2、行(row):定义的并非数据本身而是这一行的数据是什么
- 3、混合模式(mixed):交替使用行和语句、由mysql服务器自行判断

二进制日志格式对复制的影响
基于SQL语句(statement)复制(SBR)
优点
- 1、生成的日志量少,节约网络传输IO
- 2、并不强制要求主从数据库的表定义完全相同
- 3、相比于基于行的复制方式更为灵活
缺点
- 1、对于非确定性事件,无法保证主从复制数据的一致性
- 2、对于存储过程,触发器,自定义函数进行的修改也可能造成数据不一致
- 3、相比于基于行的复制方式在从上执行时需要更多的行锁
基于行的复制(PBR)
优点
- 1、可以应用于任何SQL的复制包括非确定函数,存储过程等
- 2、可以减少数据库锁的使用
- 3、对主从数据的一致性更加有保证
缺点
- 1、要求主从数据库的表结构相同,否则可能会中断复制
- 2、无法在从上单独执行触发器
在Golang编程中,经常会用到MongoDB数据库进行查询,但是当日期是一个字符串的时候,如何根据日期进行分组查询呢?本文将记录如何分组查询统计。
Linux系统里面有一个名为mlocate.db的数据库文件,这个文件系统包含系统文件的文件名及对应的路径信息。locate命令查找文件时就不用遍历磁盘,而是直接查找mlocate.db文件,这样可以快速定位。但是会有一个问题,如果新添加的文件,那么mlocate.db文件就没有记录,因此使用locate命令时可以先用updatedb命令更新一下mlocate.db数据库文件。当然,mlocate.db还会由系统自带的定时任务执行updatedb命令来定时更新。
一般情况下,我们都是使用单个Redis服务器。但是在生产环境中,单个Redis数据库可能存在如系统崩溃、网络连接闪断或者服务器断电等单点故障的问题。那么Redis是否提供了类似于Mysql的主从复制的机制呢?对的,Redis跟其他数据库也一样,同样提供了复制机制,使得一个Redis服务器【主实例或者Master】复制到一个或者多个Redis服务器中【从实例或Slave】.
Nginx作为使用量非常大的Web服务器,但是如果遇到一个访问量比较大的网站,其访问日志会快速的进行增长,如果一直将所有的访问日志存放在一个文件中肯定是不对的,所以我们就需要对访问量大的访问日志进行分割,然后按照一定的时间删除不需要的日志文件。
php中的array_walk_recursive函数对数组中的每个成员递归地应用用户函数
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题