什么是binlog日志
1)二进制日志
2)MySQL服务日志文件的一种
3)记录除查询之外的所有SQL命令
4)可用于数据备份和恢复
5)配置mysql主从同步的必要条件
##########################
启用日志
配置项 | 用途 |
---|---|
server_id=数字 | 指定id值(1-255) |
log_bin[=目录名/文件名] | 启动binlog日志 |
max_binlig_size=数值m | 指定日志文件容量,1G |
vim /etc/my.cof
[mysql]
log_bin //启动binlog日志(=/文件目录/名称(指定日志文件及名称))
例子:log_bin=/mylog/llh(mkdir /mylog >> chown mysql /mylog >> 重启服务)
server_id //指定id号
binlong | 相关文件 |
---|---|
主机名-bin.index | 索引文件 |
主机名-bin.000001 | 第1个二进制日志 |
主机名-bin.000002 | 第2个二进制日志 |
###############################################################################
日志 | 常用命令 |
---|---|
show master status; | 查看日志信息 |
flush logs; | 刷新日志 |
system 命令 | 使用linux命令 |
purge master logs to “要删除的日志” | 删除日志 |
清理日志
删除指定编号之前的binlog日志文件:purge master logs to "binlog文件名"
删除所有binlog日志,重建新日志:reset master;
###############################################################################
分析日志
查看日志当前记录格式:show variables like "binlog_format"
修改日志记录格式:vim /etc/my.cnf >> [mysqld] >> binlog_format="名称"
三种记录方式:statement(报表模式)row(行模式)mixed(混合模式)
查看日志内容:mysqlbinlog [选项] binlog日志文件名
选项 | 用途 |
---|---|
–start-datetime=“yyyy-mm-dd hh:mm:ss” 目录 | 起始时间 |
–stop-datetime=“yyyy-mm-dd hh:mm:ss” 目录 | 结束时间 |
–start-position=数字 | 起始偏移量 |
–stop-position=数字 | 结束偏移量 |
###############################################################################
恢复数据
基本思路:利用mysqlbinlog提取历史SQL操作,通过管道交给mysql命令执行
命令格式:mysqlbinlog 日志文件 | mysql -uroot -p密码