错误日志
查看错误日志存放位置
show variables like '%log_error%';
二进制日志
记录了ddl、dml语句,但是不包括select、show语句
- 数据恢复
- mysql的主从赋值
- 日志格式
- statement:基于sql语句的日志记录
- row:基于行的日志记录
- mixed:混合上面两种
show variables like '%log_bin%';
- 删除二进制日志
# 日志不删除会占用磁盘空间
# 删除全部binLog日志,日志编号将从000001开始
reset master;
# 删除xxxx编号之前的所有日志
purge master logs to 'binglog.xxx';
# 删除日志为yyyy-mm-dd hh24:mi:ss之前的日志
purge master logs before 'yyyy-mm-dd hh24:mi:ss'
# 默认的二进制文件的过期时间是30天
show variables like '%binlog_expire_logs_seconds%';
查询日志
查询日志包含了客户端的所有操作,而二进制日志不包含查询数据的sql语句,默认是关闭的
# mysql配置文件配置开启日志文件和日志文件的名称
general_log = 1;
general_log_file=mysql_query.log
主从复制作用
主从复制是将主数据库的ddl和dml操作通过二进制日志传到从库服务器,然后从库执行这些日志文件重新执行,从而使得从库与主数据库的数据保持一致性
主从复制原理
主从复制配置
#主库配置
server-id=1
# 1代表只读、0代表读写
read-only=0
#忽略的数据,指不需要同步的数据库
binlog-ignore-db=mysql
#指定同步的数据库
binlog-do-db=test
#创建test用户,该用户可访问到主数据库
create user 'ck'@'%' identified with mysql_native_password by 'root'
#分配主从复制权限
grant replication slave on *.* to 'test'@'%';
#从库配置
server-id=2
# 1代表只读、0代表读写
read-only=1
# 从库执行 master_log_pos是binlog日志文件位置 master_log_file是指binlog的文件名,可以通过show master status查看
change master to master_host='127.0.0.1',master_port=3307,master_user='test',master_password='root',master_log_file='binlog.000001',master_log_pos=0;
#启动同步操作 start replica或者start slave
start replica;
#查看主从同步状态 show replica status或者 show master status
show master status;
分库分表介绍
参考博客:https://blog.csdn.net/JavaMonsterr/article/details/125225069
mycat配置文档
- 需要搭建主从复制的环境
mycat文档:https://github.com/MyCATApache/Mycat-Server/wiki/1.0-Mycat%E7%AE%80%E4%BB%8B
mycat2文档:https://www.yuque.com/books/share/6606b3b6-3365-4187-94c4-e51116894695/ns3lxv