• Mysql数据库日志配置


    查看mysql安装位置

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

    show VARIABLES;

    日志类型

    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=1918         
    log_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';  #查看是否开启日志

     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
  • 相关阅读:
    Flesch Reading Ease(模拟)
    实验一:词法分析设计
    java—容器学习笔记
    [转载]马士兵Java视频教程 —— 学习顺序
    Java的安装过程
    编程之美初赛第一场
    RCC 2014 Warmup (Div. 2)
    ural 1017. Staircases(dp)
    ural 1012. K-based Numbers. Version 2(大数dp)
    ural 1009. K-based Numbers(简单dp)
  • 原文地址:https://www.cnblogs.com/aeolian/p/12567528.html
Copyright © 2020-2023  润新知