跳转至

时间: 2017/11/26 9:33:23
参考:

  1. https://dev.mysql.com/doc/refman/5.7/en/server-logs.html

日志类型

默认情况下任何日志都是没有开启的,除了再Windows上默认开启了error log。

注: -- 代表用 mysqladmin 命令执行。

  1. Error Log(错误日志):启动、结束或运行是遇到的问题。相关配置可以再运行时通过改变环境变量进行改变。

    记录数据库启动和关闭过程信息,记录启动过程和运行期间出现的错误,警告和 Note。例如:如果MySql发现一个表需要检查或修复,就会写一条消息到错误日志。

    ```shell

    把错误日志输出到控制台,会被 log-error 覆盖

    --console

    开启或关闭错误日志

    log-error=[ON|OFF]

    开启错误日志,并指定错误日志名字

    log-error="fileName"

    关闭或开启输出警告信息,和错误日志输出到同一个文件中

    log_warring=[0|1]

    刷新和重命名日志

    mv host_name.err host_name.err-old mysqladmin flush-logs mv host_name.err-old backup-directory ```

  2. General query log(一般查询日志):记录建立客户连接和客户端执行的语句。一般查询日志按语句的接收顺序记录日志,可能和执行顺序不同。相关配置可以再运行时通过改变环境变量进行改变。

  3. Slow query log(慢查询日志):记录执行时间超过指定时间的查询语句。相关配置可以再运行时通过改变环境变量进行改变。

    ```shell

    日志输出位置配置,和慢查询共用

    --log-output=[TABLE|FILE|NONE]

    开启或关闭

    general-log=[0|1]

    指定日志文件名称

    general_log_file="fileName"

    开启或关闭

    slow-query-log=[0|1]

    指定日志文件名称

    slow_query_log_file="fileName"

    慢查询,记录没有使用索引的语句

    log_queries_not_using_indexes

    重命名日志文件

    shell> mv host_name.log host_name-old.log shell> mysqladmin flush-logs shell> mv host_name-old.log backup-directory ```

  4. Relay log(中继日志):从复制的主服务器接受的数据改变。

  5. Binary log(二进制日志): 记录改变数据的语句(也用于复制)。语句将在语句再执行之后,锁释放之前被写入日志。

    用途:

    • 复制:用于主从复制,主服务把数据改变的语句发送到从服务器,从服务器执行语句从而使得从服务和主服务的数据同步。
    • 数据恢复操作:备份回复后,执行 bin log 里面记录的语句,把数据恢复到指定的时间。

      ```shell

      开 bin log(配置文件中 log_bin=mysql-binlog)

      --log-bin[=base_name]

      指定bin log 最大大小

      max_binlog_size

      bin log 索引文件名字

      --log-bin-index[=file_name]

      bin log 格式 取决于MySql版本

      binlog_format=[row(事件)|statement(语句)|mixed(前两种混合)]

      主从时,从数据库的配置

      --log-slave-updates

      查看二进制日志的内容

      mysqlbinlog log_file | mysql -h server_name

      多少条之后同步到磁盘

      sync_binlog = 1(最安全,但是速度慢)

      确保磁盘数据和 bin log同步

      --innodb_support_xa=1

      查看bin log 数据

      show binlog events; mysqlbinlog "C:\ProgramData\MySQL\MySQL Server 5.7\Data\DESKTOP-OV8JFOA-bin.000001"

      修改 bin log 记录格式

      SET GLOBAL binlog_format = 'STATEMENT'; ```

  6. DDL log (metadata log)(数据定义日志): 触发器语句已经执行的元数据操作。

    记录数据定义产生的操作,如 alter tabledrop table,解决数据回复问题。
    解决 DROP TABLE t1, t2,当t1被删除,t2被删除之前,系统挂掉,系统重启之后根据日志t2也会被删除。