Mysql数据库日志配置
查看mysql安装位置
执行命令找到mysql安装位置basedir
show VARIABLES;
日志类型
mysql有以下几种日志
错误日志: -log-err
查询日志: -log
慢查询日志: -log-slow-queries
更新日志: -log-update
二进制日志: -log-bin
修改/conf/my.ini文件,官网文档
#在[mysqld]下配置错误日志,查询日志,慢日志 #错误日志 log-error=/usr/local/mysql/log/error.log #查询日志,对所有执行语句进行记录 general_log=on general_log_file=/usr/local/mysql/log/mysql.log #开启慢查询 slow_query_log = on #慢查询中记录没有使用索引的query log-queries-not-using-indexes=on #返回较慢的日志mysql5.6版本以上,取消了参数log-slow-queries,更改为slow-query-log-file slow-query-log-file= /usr/local/mysql/log/slowquery.log #慢查询时间,这里为2秒,超过2秒会被记录 long_query_time=2 #二进制日志 server_id=1918 log_bin = mysql-bin binlog_format = ROW
使用场景
错误日志:系统故障时,建议首先查看错误日志,以帮助用户迅速定位故障原因。
二进制日志:如果要记录数据的变更、数据的备份、数据的复制等操作时,二进制日志必须打开,以帮助用户进行数据恢复等操作。默认不记录此日志,建议通过--log-bin 选项将此日志打开。
查询日志:如果希望记录数据库发生的任何操作,包括 SELECT,则需要用--log 将查询日志打开,此日志默认关闭,一般情况下建议不要打开此日志,以免影响系统整体性能。
慢查询日志:如 果希 望查看 系统的 性能 问题, 希望 找到有 性能 问题的 SQL 语 句,则 需要 用--log-slow-queries 打开慢查询日志。对于大量的慢查询日志,建议使用 mysqldumpslow 工具来进行汇总查看。
开启二进制日志
mysql -uroot -p #登录数据库 show variables like 'log_bin'; #查看是否开启日志
OFF表示关闭,查看配置文件my.cnf是否有关于log_bin的配置,如果没有在[mysqld]下面添加如下配置
server_id=1918
log_bin = mysql-bin
binlog_format = ROW
mysql binlog的三种工作模式
(1)ROW:基于行的复制
日志中会记录每一行数据被修改的形式
(2)Statement:基于sql语句的复制
每一条会修改数据的sql都会记录到master的bin-log中
(3)MIXED:混合模式复制,
在Mixed模式下,MySQL会根据执行的每一条具体的sql语句来区分对待记录的日志格式,也就是在Statement和Row之间选择一种
保存后重启Mysql服务后再次查询
show variables like 'log_bin'; #查看是否开启日志 show variables like 'binlog_format'; #查看日志记录方式
查询二进制日志文件
登录数据库查询当前二进制日志文件
show master logs;
show binary logs;
mysqlbinlog查询二进制文件
mysqlbinlog ./mysql-bin.000001 -v
查询选定时间段
mysqlbinlog -d deep_creator --start-datetime='2020-03-25 10:54:00' --stop-datetime='2020-03-25 10:55:00' -s ./mysql-bin.***-v
报错
mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8'
使用--no-defaults参数
mysqlbinlog --no-defaults mysql-bin.000001
TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option
配置文件增加
[mysqld]
explicit_defaults_for_timestamp=true
原文地址:https://www.cnblogs.com/aeolian/p/12567528.html
- 结合源码彻底讲解Aggregate vs treeAggregate
- Nginx+uWSGI部署Django网站的详细步骤,脱坑必备,值得收藏!
- 友元类
- 大数据最佳实践 | HBase客户端
- 模板类的友元
- Qt学习笔记 TableWidget使用说明和增删改操作的实现
- 计算机程序的思维逻辑 (9) - 强大的循环
- Qt学习笔记 QMessageBox
- Java finally return知识小菜
- Qt 学习笔记 TreeWidget 增删改
- 计算机程序的思维逻辑 (9) - 条件执行的本质
- Awesome!细数10个隐藏在Python中的彩蛋
- Qt学习笔记 ListWidget的增删改
- Qt学习笔记 信号和槽
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解