mysql 日志配置_Mysql数据库日志配置

查看mysql安装位置

执行命令找到mysql安装位置basedir

show VARIABLES;

5be21c130d546474a5472015a9b0bffa.png

日志类型

mysql有以下几种日志

错误日志:     -log-err

查询日志:     -log

慢查询日志:   -log-slow-queries

更新日志:     -log-update

二进制日志: -log-bin

my.ini配置

修改/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

#日志输出到文件/数据库,都输出用,分割,默认只输出到FILE.加上TABLE后会输出在mysql.general_log,slow_log

#log_output='FILE,TABLE'

#二进制日志

server_id=1918log_bin= mysql-bin

binlog_format= ROW

windows中配置路径时要用\\,不然\s会被替换成空格.

使用场景

错误日志:系统故障时,建议首先查看错误日志,以帮助用户迅速定位故障原因。

二进制日志:如果要记录数据的变更、数据的备份、数据的复制等操作时,二进制日志必须打开,以帮助用户进行数据恢复等操作。默认不记录此日志,建议通过--log-bin 选项将此日志打开。

查询日志:如果希望记录数据库发生的任何操作,包括 SELECT,则需要用--log 将查询日志打开,此日志默认关闭,一般情况下建议不要打开此日志,以免影响系统整体性能。

慢查询日志:如 果希 望查看 系统的 性能 问题, 希望 找到有 性能 问题的 SQL 语 句,则 需要 用--log-slow-queries 打开慢查询日志。对于大量的慢查询日志,建议使用 mysqldumpslow 工具来进行汇总查看。

开启二进制日志

mysql -uroot -p #登录数据库

show variables like 'log_bin'; #查看是否开启日志

da277aa42267d5813e106e22f1a5778e.png

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;

8372197fb74a38e4266529f9c5dc45dd.png

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'

37a0e6adff0332bfc1e11c08be3fb863.png

使用--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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值