Mysql日志管理笔记

合集下载

MySQL中的日志文件和错误日志处理

MySQL中的日志文件和错误日志处理

MySQL中的日志文件和错误日志处理在数据库管理系统中,日志文件和错误日志是非常重要的组成部分。

它们记录了数据库的操作和出现的错误,提供了故障排除和性能优化的重要依据。

本文将讨论MySQL中的日志文件和错误日志处理的相关知识。

一、日志文件的作用日志文件是用于记录数据库操作过程中的各种事件和状态变化的文件。

它可以帮助我们了解数据库的运行情况、追踪问题、恢复数据和评估性能。

MySQL中常见的日志文件包括二进制日志、错误日志、查询日志和慢查询日志等。

1. 二进制日志(Binary Log)二进制日志是MySQL中最重要的日志文件之一。

它记录了所有对数据库进行修改的事件,包括数据库的创建和删除、表的结构和数据的增删改等。

二进制日志的作用主要有两个方面:一是用于数据的增量备份和恢复,二是用于数据库的主从复制。

对于数据备份和恢复,二进制日志记录了数据库的所有修改操作,我们可以通过还原所有操作来达到恢复数据的目的。

而对于主从复制,二进制日志记录了主服务器上所有的修改操作,并通过网络将这些操作传输到从服务器上执行,从而保持主从数据库的一致性。

2. 错误日志(Error Log)错误日志记录了MySQL服务器在运行过程中发生的错误和警告信息。

它可以帮助我们快速发现和排除问题,提高系统的稳定性和可靠性。

错误日志中包含了关键的错误信息,如数据库连接失败、语法错误、整数溢出等,以及警告信息,如磁盘空间不足、线程死锁等。

对于错误日志的处理,通常情况下我们可以通过查看错误日志来定位和解决问题。

对于一些警告信息,我们可以根据需要采取相应的措施,如增加磁盘空间、优化查询语句等。

3. 查询日志(General Log)查询日志记录了所有的SQL语句和执行结果,它可以帮助我们了解数据库每一步的操作过程,包括查询语句、更新语句和事务等。

查询日志的作用主要是用于调试和性能优化。

通过查看查询日志,我们可以了解到哪些查询是频繁执行的,哪些查询需要优化,从而提高数据库的性能。

如何使用MySQL进行日志管理和审计

如何使用MySQL进行日志管理和审计

如何使用MySQL进行日志管理和审计引言:日志管理和审计是任何一个数据库管理系统中的关键组成部分。

MySQL作为一种广泛使用的关系型数据库管理系统,具备了强大的日志管理和审计功能。

本文将介绍如何使用MySQL进行日志管理和审计,并探讨其在保护数据安全和维护系统稳定性方面的重要作用。

一、日志管理的重要性1.1 什么是日志日志是数据库管理系统中记录各种重要事件和操作的一种记录形式。

在MySQL中,日志分为多种类型,包括二进制日志、错误日志、查询日志、慢查询日志等。

通过对这些日志的记录和分析,可以及时发现和解决数据库中的问题,对系统运行情况进行监控和调试。

1.2 日志管理的作用日志管理对于数据库管理系统来说具有重要意义。

其作用主要体现在以下几个方面:(1)问题排查和故障恢复:通过记录数据库的各种操作和事件,可以快速定位问题并进行故障恢复。

(2)性能优化:通过分析日志中的SQL语句和执行计划,可以找出影响性能的瓶颈,并进行相应优化。

(3)安全审计:可以对数据库的访问和操作进行审计和监控,加强数据安全保护。

(4)业务分析:通过分析日志中的用户访问情况和操作行为,可以为业务决策提供参考依据。

二、MySQL的日志类型及配置2.1 二进制日志(Binary Log)二进制日志记录了所有对数据库的更改操作,包括增删改操作和数据表结构的修改。

通过开启二进制日志,可以实现数据的增量备份和复制。

2.2 错误日志(Error Log)错误日志是MySQL记录各种错误和异常信息的地方,通过查看错误日志可以了解数据库中出现的各种错误情况和异常事件。

2.3 查询日志(General Query Log)查询日志记录了所有的查询操作语句,包括SELECT、INSERT、UPDATE、DELETE等操作。

通过开启查询日志,可以查看数据库中执行的所有SQL语句,方便进行性能分析和问题排查。

2.4 慢查询日志(Slow Query Log)慢查询日志是一种特殊的查询日志,只记录执行时间超过设置阈值的查询语句。

MySql的操作日志历史记录

MySql的操作日志历史记录

MySql的操作⽇志历史记录如何查看mysql数据库操作记录⽇志1、⾸先确认你⽇志是否启⽤了mysql>show variables like 'log_bin'。

2、如果启⽤了,即ON,那⽇志⽂件就在mysql的安装⽬录的data⽬录下。

3、怎样知道当前的⽇志mysql> show master status。

4、看⽇志⽂件⽤mysqlbinlog,shell>mysqlbinlog mail-bin.000001或者shell>mysqlbinlog mail-bin.000001 | tail,Windows 下⽤类似的。

MySQL的⽇志操作:1、⾸先,登陆mysql后,执⾏:show variables like 'log_bin'。

2、#错误⽇志log-errol开启⽅式:在my.ini的[mysqld]选项下:添加代码:log-error=E:\log-error.txt。

记录内容:主要是记录启动、运⾏或停⽌mysqld时出现的致命性问题,都是系统级的错误记录。

3、#查询⽇志:log,开启⽅式:在my.ini的[mysqld]选项下:添加代码:log=E:/mysql_log.txt。

4、#⽇志:log-bin,开启⽅式:在my.ini的[mysqld]选项下:添加代码:log-bin=E:/mysql_log_bin,记录内容:主要是记录所有的更改数据的语句,可使⽤mysqlbinlog命令恢复数据。

mysql查看历史执⾏的sql转载2015年08⽉31⽇ 18:23:11标签:15983查看mysql的语句,⽐较常⽤的⼤概是show processlist 命令了,但是这个对于查询时间⽐较长的语句⽐较有意义,对于⼀下⼦就能执⾏的语句真⼼拼不过⼿速啊.于是就只能从mysql的历史记录⾥⾯着⼿了.为了实现这个⽬的,我们需要修改/etc/f⽂件.在f中的[mysqld](其他地⽅可能⽆效)下插⼊log=/etc/tmp/mysql.log(⽇志的地址可以⾃⼰定义,不过不要在home⾥⾯,否则可能显⽰不出来,主要要有写的权限).然后要重启数据库,⽤service mysqld restart命令就可以了.这个log会将所有的执⾏语句记录下来,所以在数据库很忙的时候,这个⽇志可能变得很⼤,不宜查看.⽤tail -f /etc/tmp/mysql.log 命令可以持续观察执⾏语句,也可以将该⽂件下载下来慢慢看.=========================================另外还有⼀个慢查询历史记录,也在f⽂件⾥,配置语句为1234 log-slow-queries=/var/lib/mysql/slowquery.log long_query_time=5 log-queries-not-using-indexes其中log-slow-queries是慢查询历史记录的地址,long_query_time限定超过X秒才能加⼊到历史记录⾥⾯,log-queries-not-using-indexes限定没有使⽤索引的查询语句.这个⽇志由于记录语句不多,所以可以长期开启.MySQL的⽇志操作在MySQL的初期,需要熟练掌握sql语句的运⽤,最简单的⽅式就是多练习多运⽤,但是好需要有⼀定的⽬的性,什么意思呢?就是每个⼈的习惯不⼀样,可能容易犯的错误也不同,所以需要总结⾃⼰的常犯错误,有针对性的弥补,这样就会对MySQL的学习和掌握起到事半功倍的效果。

MySQL中的回滚日志与数据恢复方法详解

MySQL中的回滚日志与数据恢复方法详解

MySQL中的回滚日志与数据恢复方法详解MySQL是一种常用的关系型数据库管理系统,广泛应用于各个领域的数据存储和处理中。

在实际使用过程中,难免会遇到各种问题,例如数据误操作、系统崩溃等情况,这时候回滚日志和数据恢复就显得尤为重要。

本文将详细介绍MySQL中的回滚日志与数据恢复方法。

一、回滚日志回滚日志是MySQL用于支持事务的一种日志文件,记录了对数据库进行更新操作的详细信息。

当事务出现异常或被回滚时,回滚日志将被用于回滚操作,保证数据的一致性和完整性。

1.1 回滚日志的生成和写入在MySQL中,回滚日志由两部分组成:undo log和redo log。

undo log用于记录事务对数据进行的修改操作,而redo log则用于记录事务的持久化操作。

当事务进行修改时,undo log会先将被修改的数据备份到回滚日志中,然后进行实际的修改操作。

如果事务发生回滚,可以通过回滚日志将数据还原至事务开始之前的状态。

回滚日志的写入是在事务进行时实时进行的,MySQL使用了WAL(Write Ahead Logging)机制,即先写入日志再修改数据。

这样可以确保在发生系统崩溃等异常情况时,通过回滚日志可以恢复到崩溃之前的数据状态。

1.2 回滚日志的存储和管理MySQL将回滚日志以文件的形式进行存储,通常存储在数据目录下的data文件夹中。

回滚日志文件的命名格式为"ib_logfile"加上一个数字标识,例如"ib_logfile0"、"ib_logfile1"等。

回滚日志文件的大小是固定的,可以通过配置文件进行设置。

当回滚日志已满时, MySQL会自动关闭回滚日志,并创建新的回滚日志文件继续记录。

由于回滚日志对数据一致性和完整性至关重要,因此在进行MySQL升级等操作时,务必要备份好现有的回滚日志文件,以免造成数据丢失。

二、数据恢复方法当MySQL数据库出现异常,例如数据误操作、系统崩溃等情况,往往需要进行数据恢复操作。

mysql的日志类型

mysql的日志类型

mysql的日志类型MySQL有多种日志类型,用于记录数据库的不同操作和事件。

以下是常见的MySQL日志类型:1. 二进制日志(Binary Log):-记录数据库的所有修改操作,如INSERT、UPDATE、DELETE。

-用于主从复制和点播恢复。

2. 错误日志(Error Log):-记录MySQL服务器的错误信息、警告和通知。

-包含有关发生错误的上下文信息。

3. 查询日志(Query Log):-记录所有的查询语句,包括对表的读取操作。

-可以通过设置`log_queries_not_using_indexes`选项来启用。

4. 慢查询日志(Slow Query Log):-记录执行时间超过指定时间阈值的查询。

-通过设置`slow_query_log`选项来启用。

5. 中继日志(Relay Log):-用于主从复制,存储从主服务器接收的二进制日志事件。

-在从服务器上执行这些事件,以保持从服务器与主服务器的同步。

6. 事务日志(Transaction Log):-记录事务的开始和结束。

-主要用于InnoDB存储引擎,支持事务的回滚和恢复。

7. 错误信息日志(General Query Log):-记录所有的查询和客户端的连接信息。

-可以通过设置`general_log`选项来启用。

8. InnoDB状态日志(InnoDB Status Log):-记录InnoDB存储引擎的状态信息,如锁和事务信息。

-可以通过执行`SHOW ENGINE INNODB STATUS`来查看。

这些日志类型允许数据库管理员监视和调试MySQL服务器的运行状态,同时提供了故障排除和性能优化的工具。

(转)MySQL学习笔记-redolog和binlog两阶段提交

(转)MySQL学习笔记-redolog和binlog两阶段提交

(转)MySQL学习笔记-redolog和binlog两阶段提交原⽂:https:///qq_38937634/article/details/113100472?utm_term=mysql%E6%97%A5%E5%BF%97%E4%B8%A4%E9%98%B6%E6%AE%B5%E6%8F%90%E4%BA%A4&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-2-113100472&spm=3001.4430⽂章⽬录MySQL学习笔记-redo log 和 binlog&两阶段提交1.笔记图2.⼀条更新语句是如何被执⾏的3.redo log4.binlog5.为什么要有两份⽇志?6.更新语句内部执⾏流程7.两阶段提交MySQL学习笔记-redo log 和 binlog&两阶段提交前⾯学习了⼀条查询语句的执⾏过程⼀般是经过连接器、分析器、优化器、执⾏器等功能模块,最后到达存储引擎,⽽⼀条更新语句的执⾏流程也会按照查询查询语句的流程⾛⼀遍,但更新语句会涉及到两个⽇志模块,分别是 redo log 和 binlog,这篇⽂章学习⼀下这两个⽇志的作⽤。

1.笔记图2.⼀条更新语句是如何被执⾏的连接器:负责跟客户端建⽴连接、获取权限、维持和管理连接分析器:词法分析:识别出 SQL 语句⾥⾯的字符串分别代表什么,把 SQL 语句中字符串 T 识别成“表名 T,把字符串 ID 识别成列 ID语法分析:根据词法分析的结果,语法分析器会根据语法规则,判断你输⼊的这个 SQL 语句是否满⾜ MySQL 语法优化器:优化器是在表⾥⾯有多个索引的时候,决定使⽤哪个索引,或者在⼀个语句有多表关联(join)的时候,决定各个表的连接顺序执⾏器:调⽤存储引擎提供的接⼝3.redo logWAL(Write-Ahead Logging):先写⽇志,再写磁盘当有记录需要更新时,InnoDB 引擎就会先把记录写到 redo log,并更新内存,这时更新就算完成InnoDB 的 redo log 是固定⼤⼩的,可以配置为⼀组 4 个⽂件,每个⽂件的⼤⼩是 1GB,从头开始写,写到末尾就⼜回到开头循环写Tips:write pos 表⽰当前记录的位置,写到第 3 号⽂件末尾后就回到 0 号⽂件开头,checkpoint 表⽰当前要擦除的位置,擦除记录前要把记录更新到数据⽂件如果 write pos 追上 checkpoint,表⽰ redo log 满了,这时不能再执⾏新的更新,得停下来先擦掉⼀些记录,把 checkpoint 推进⼀下crash-safe:InnoDB 就可以保证即使数据库发⽣异常重启,之前提交的记录都不会丢失4.binlogMySQL Server 层也有⾃⼰的⽇志,称为归档⽇志(binlog),binlog ⽇志只能⽤于归档redo log 是 InnoDB 引擎特有的,binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使⽤redo log 是物理⽇志,记录的是在某个数据页上做了什么修改,binlog 是逻辑⽇志,记录的是这个语句的原始逻辑,⽐如给 ID=2 这⼀⾏的 c 字段加 1redo log 是循环写的,空间固定会⽤完,binlog 是可以追加写⼊的,binlog ⽂件写到⼀定⼤⼩后会切换到下⼀个,并不会覆盖以前的⽇志5.为什么要有两份⽇志?最开始 MySQL ⾥并没有 InnoDB 引擎,MyISAM 没有 crash-safe 的能⼒,binlog ⽇志只能⽤于归档InnoDB 是另⼀个公司以插件形式引⼊ MySQL 的,使⽤另外⼀套⽇志系统 redo log 来实现 crash-safe 能⼒6.更新语句内部执⾏流程update T set c=c+1 where ID=2执⾏器先找引擎取 ID=2 这⼀⾏,ID 是主键,引擎直接⽤树搜索找到这⼀⾏,如果 ID=2 这⼀⾏所在的数据页本来就在内存中,就直接返回给执⾏器,否则,需要先从磁盘读⼊内存,然后再返回执⾏器拿到引擎给的⾏数据,把这个值加上 1,⽐如原来是 N,现在就是 N+1,得到新的⼀⾏数据,再调⽤引擎接⼝写⼊这⾏新数据引擎将这⾏新数据更新到内存中,同时将这个更新操作记录到 redo log ⾥⾯,此时 redo log 处于 prepare 状态。

mysql:管理mysql的二进制日志(mysql8.0.19)

mysql:管理mysql的二进制日志(mysql8.0.19)

mysql:管理mysql的⼆进制⽇志(mysql8.0.19)⼀,从命令⾏查看mysql的⽇志⽂件:[root@d1 var]# lltotal 174188296-rw-rw---- 1 mysql mysql 1074435802 Jul 62019 mysql-bin.000001-rw-rw---- 1 mysql mysql 1074418575 Jul 62019 mysql-bin.000002-rw-rw---- 1 mysql mysql 1073741960 Jul 262019 mysql-bin.000003-rw-rw---- 1 mysql mysql 977965714 Aug 22019 mysql-bin.000004-rw-rw---- 1 mysql mysql 126 Aug 22019 mysql-bin.000005-rw-rw---- 1 mysql mysql 1073742455 Aug 72019 mysql-bin.000006-rw-rw---- 1 mysql mysql 1073742104 Aug 132019 mysql-bin.000007-rw-rw---- 1 mysql mysql 1073742124 Aug 192019 mysql-bin.000008-rw-rw---- 1 mysql mysql 1073742327 Sep 72019 mysql-bin.000009-rw-rw---- 1 mysql mysql 638874522 Sep 182019 mysql-bin.000010-rw-rw---- 1 mysql mysql 949280 Sep 182019 mysql-bin.000011-rw-rw---- 1 mysql mysql 1074508569 Sep 232019 mysql-bin.000012-rw-rw---- 1 mysql mysql 1073741886 Sep 262019 mysql-bin.000013-rw-rw---- 1 mysql mysql 1073742102 Oct 182019 mysql-bin.000014-rw-rw---- 1 mysql mysql 1073741907 Nov 82019 mysql-bin.000015-rw-rw---- 1 mysql mysql 1073742207 Nov 292019 mysql-bin.000016-rw-rw---- 1 mysql mysql 1073741927 Dec 202019 mysql-bin.000017-rw-rw---- 1 mysql mysql 1073742057 Jan 112019 mysql-bin.000018-rw-rw---- 1 mysql mysql 473988798 Jan 182019 mysql-bin.000019-rw-rw---- 1 mysql mysql 2055287 Jan 182019 mysql-bin.000020-rw-rw---- 1 mysql mysql 29439 Jan 182019 mysql-bin.000021...说明:⼆进制⽇志⽂件的路径在mysql的配置⽂件中定义:[dbop@d1 var]$ more /etc/f...# BINARY LOGGING #log-bin = /data/mysql/var/mysql-bin说明:刘宏缔的架构森林是⼀个专注架构的博客,地址:对应的源码可以访问这⾥获取:说明:作者:刘宏缔邮箱: 371125307@⼆,执⾏清理⼆进制⽇志的sql1,登录到mysql[root@d1 ~]# mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.2,查看⼆进制⽇志mysql> show binary logs;+------------------+------------+| Log_name | File_size |+------------------+------------+| mysql-bin.000001|1074435802|| mysql-bin.000002|1074418575|| mysql-bin.000003|1073741960|| mysql-bin.000004|977965714|| mysql-bin.000005|126|| mysql-bin.000006|1073742455|| mysql-bin.000007|1073742104|| mysql-bin.000008|1073742124|| mysql-bin.000009|1073742327|...3,清理⼆进制⽇志删除mysql-bin.000020之前的⽇志,但不包含mysql-bin.000020本⾝mysql> purge binary logs to'mysql-bin.000020';Query OK, 0 rows affected (32.63 sec)4,查看purge的帮助:mysql> help purge binary logsName: 'PURGE BINARY LOGS'Description:Syntax:PURGE { BINARY | MASTER } LOGS{ TO 'log_name' | BEFORE datetime_expr }The binary log is a set of files that contain information about data modifications made by the MySQL server. The log consists of a set of binary log files, plus an index file (see/doc/refman/5.5/en/binary-log.html).The PURGE BINARY LOGS statement deletes all the binary log files listedin the log index file prior to the specified log file name or date.BINARY and MASTER are synonyms. Deleted log files also are removed from the list recorded in the index file, so that the given log file becomesthe first in the list.This statement has no effect if the server was not started with the--log-bin option to enable binary logging.URL: /doc/refman/5.5/en/purge-binary-logs.html Examples:PURGE BINARY LOGS TO 'mysql-bin.010';PURGE BINARY LOGS BEFORE '2008-04-02 22:46:26';5,其他:reset master会删除所有的⼆进制⽇志,所以如果有主从复制时不要使⽤这个处理⽅法6,如何⾃动清理?#使⼆进制⽇志超过14天后⾃动过期expire-logs-days = 14三,查看mysql的版本mysql> SHOW VARIABLES LIKE'version';+---------------+-----------------+| Variable_name | Value |+---------------+-----------------+| version | 8.0.19-log|+---------------+-----------------+1 row in set (0.00 sec)四,查看linux的版本:[dbop@d1 var]$ more /etc/redhat-releaseCentOS release 8.1 (Final)。

mysql三种日志

mysql三种日志

mysql三种⽇志1. MySQL⽇志之binlog⽇志1.1 mysql⼯具mysqlbinlogmysqbinlog⼯具的作⽤是解析mysql的⼆进制binlog⽇志内容,把⼆进制的⽇志解析成可以在MySQL数据库⾥执⾏的SQL语句。

1.2 MySQL的·binlog⽇志是什么?MySQL数据⽬录下的如下⽂件就是mysql的binlog⽇志mysql-bin.000001mysql-bin.000002mysql-bin.000003mysql-bin.000004mysql-bin.000005mysql-bin.000006mysql-bin.000007mysql-bin.000008. . . . . .. .提⽰:要想⽣成binlog必须在配置⽂件中打开log-bin功能[root@db01 3306]# greplog-bin /data/3306/flog-bin =/data/3306/mysql-bin1.3 mysql binlog⽇志功能开启[root@db01 3306]# vim /data/3306/flog-bin = /data/3306/mysql-bin1.4 mysql的binlog⽇志作⽤是什么?mysql的binlog⽇志作⽤是⽤来记录mysql内部增删等对mysql数据库有更新的内容的记录(对数据的改动),对数据库查询的语句如show,select开头的语句,不会被binlog⽇志记录。

⽤于数据库的主从复制,以及增量恢复。

测试题:在MySQL数据库中,关于binlog⽇志,下列说法正确的是-----------(A)A:依靠⾜够长度的binlog⽇志和定期的全备,我们可以恢复任何时间点的单表数据。

B:以mysql主从同步为例,binlog中会记录主数据库的所有操作。

C:以mysql主从同步为例,binlog中会记录主数据库的所有查询操作。

如何在MySQL中使用触发器实现日志记录

如何在MySQL中使用触发器实现日志记录

如何在MySQL中使用触发器实现日志记录引言:MySQL是一种常用的关系型数据库管理系统,广泛应用于各种软件开发中。

在实际的应用中,往往需要对数据库的变动进行日志记录,以便于追踪和审计。

在MySQL中,可以使用触发器机制来实现对数据库操作的日志记录。

本文将重点介绍如何在MySQL中使用触发器实现日志记录,并探讨一些应用场景和注意事项。

一、什么是触发器触发器是MySQL提供的一种数据库对象,用于在执行某些特定的数据库操作(例如插入、更新、删除)前后触发一些自定义的逻辑。

触发器可以用来实现一些与业务逻辑相关的操作,比如数据校验、日志记录等。

二、为什么使用触发器实现日志记录在很多应用中,数据库的操作记录是非常重要的,可以用于追踪数据变更、分析业务操作等。

而使用触发器实现日志记录的好处主要体现在以下几个方面:1. 实时记录:通过触发器,可以在数据库操作执行前后立即记录操作信息,无需额外的代码维护;2. 统一管理:触发器可以集中管理对数据库表的操作记录,避免了分散的日志记录代码;3. 数据完整性:触发器可以确保对表的操作记录不会被篡改或删除,保证了数据的一致性和完整性。

三、如何使用触发器实现日志记录下面将着重介绍使用触发器实现日志记录的具体步骤:1. 创建日志记录表:首先,需要在数据库中创建一个专门用于记录操作日志的表。

该表可以包含一些常用字段,如操作类型、操作时间、操作用户等,以便于后续的分析和查询操作。

2. 创建触发器:在需要进行日志记录的表上,创建触发器。

触发器会在特定的数据库操作之前或之后触发相应的事件,从而可以执行相应的逻辑,包括记录操作日志。

3. 编写触发器逻辑:在触发器中,通过获取相关信息(如操作类型、操作时间、操作用户等),并结合当前操作的数据,生成相应的日志记录,并将其插入到操作日志表中。

4. 测试触发器:完成触发器逻辑的编写后,可以进行一些简单的测试来验证触发器的正确性。

比如,插入、更新、删除表中的数据,然后查看操作日志表中是否有相应的记录。

mysql中general_log日志知识点介绍

mysql中general_log日志知识点介绍

mysql中general_log⽇志知识点介绍以下操作演⽰都是基于mysql5.6.36版本:⼯作中经常遇到这样的问题:mysql数据访问能量很⼤,想要从sql⽅⾯优化。

研发经常会问到能看到哪些SQL执⾏⽐较频繁吗?回道:不能哦,只能看到当前正在运⾏的SQL和慢⽇志⾥记录的SQL。

因为为了性能考虑,⼀般general log不会开启。

slow log可以定位⼀些有性能问题的sql,⽽general log会记录所有的SQL。

然⽽有时候⽣产上的mysql出现性能问题,短时间开启general log,来获取sql执⾏的情况,对排查和分析mysql的性能问题,还是有很⼤的帮助的。

或者是有时候,不清楚程序执⾏了什么sql语句,但是⼜要排除错误,找不到原因的情况下,也是可以短暂的开启这个general log⽇志的。

mysql5.0版本,如果要开启slow log、general log,需要重启,从MySQL5.1.6版开始,general query log和slow query log开始⽀持写到⽂件或者数据库表两种⽅式,并且⽇志的开启,输出⽅式的修改,都可以在Global级别动态修改。

开启general log有很多的⽅式。

下⾯简单介绍和演⽰下:⽅法⼀:更改f配置⽂件[root@git-server ~]# grep general_log /etc/fgeneral_log = 1general_log_file = /tmp/general.log重新启动mysql,这个操作相当于是永久⽣效。

当然这种⽅式是不允许在⽣产上采⽤的。

因为要重启mysql,会中断mysql的业务。

同时general.log会记录所有的关于mysql的DDL和DML语句,⾮常消耗资源,⼀般都是在协助排除mysql故障时,临时短暂的开启⼏分钟。

事后都要关闭的。

⽅法⼆:在mysql命令控制台操作需要root⽤户才有访问此⽂件的权限默认这个⽇志是被关闭掉的。

MySQL错误日志的查看与分析方法

MySQL错误日志的查看与分析方法

MySQL错误日志的查看与分析方法导言:MySQL是一种开源的关系型数据库管理系统,被广泛应用于Web开发、大数据存储与处理等领域。

然而,使用MySQL过程中难免会遇到各种错误,而错误日志则是帮助开发人员追踪和解决问题的重要工具。

本文将介绍MySQL错误日志的查看与分析方法,希望能对读者在处理MySQL错误时提供一些有用的指导。

一、错误日志的位置与配置MySQL的错误日志默认存储在数据目录下的主机名.err文件中,可以通过查看MySQL配置文件f中的`log-error`选项来确认其准确位置。

若未指定`log-error`选项,则错误日志会被记录在系统日志文件或控制台上。

二、查看错误日志1. 登录到服务器或虚拟机中的MySQL命令行客户端;2. 运行以下命令,查看MySQL错误日志:```SHOW VARIABLES LIKE 'log_error';```该命令将显示当前MySQL错误日志的路径,然后可以使用系统提供的查看命令(如`cat`、`less`等)来打开并查看具体内容。

三、错误日志的格式与内容MySQL错误日志使用文本格式存储,其内容包括时间戳、错误级别、错误代码、错误信息等。

下面是一个示例错误日志的内容:```2021-01-01T00:00:00.000000Z 0 [ERROR] [Error Code]: Error message```其中,时间戳表示错误发生的时间,错误级别可以是`ERROR`、`WARNING`等,错误代码表示具体的错误类型,错误信息则是对错误的描述。

四、错误日志的分析方法1. 根据时间戳定位错误发生的时间,可以通过在错误日志中搜索该时间戳或者前后几行的内容来确定具体错误信息;2. 根据错误级别过滤错误,有时错误日志中会包含许多警告信息,我们可以通过只关注`ERROR`级别的信息来排除无关的内容;3. 根据错误代码查询相关信息,MySQL官方文档中提供了详细的错误代码列表,我们可以根据错误代码定位到具体的错误类型,并找到相应的解决方案;4. 结合其他日志和监控工具,有时MySQL错误日志中的信息可能不够详细,我们可以结合其他日志(如慢查询日志、查询日志)和监控工具(如Percona Toolkit、pmacct等)来对错误进行更深入的分析。

MySQL错误日志分析与解决技巧

MySQL错误日志分析与解决技巧

MySQL错误日志分析与解决技巧引言:MySQL是一个流行的关系型数据库管理系统,许多Web应用程序和大型企业都使用它存储和管理数据。

然而,使用MySQL时,我们经常会遇到各种各样的错误。

本文将探讨如何分析MySQL错误日志并解决这些错误的技巧。

一、错误日志的作用和位置MySQL错误日志是MySQL服务器记录所有运行期间遇到的错误和警告的文件。

它对于故障排除和性能调优非常有帮助。

默认情况下,MySQL错误日志的位置在MySQL服务器的数据目录中的`hostname.err`文件中。

二、错误日志的格式MySQL错误日志使用特定的格式来记录错误信息。

每个错误日志条目都以一个时间戳开头,后跟错误的严重级别、错误代码和错误消息。

以下是一个示例:```2021-01-01T00:00:00.000000Z 0 [ERROR] [12345] Error message```在分析错误日志时,我们可以根据时间戳、严重级别和错误代码来定位和理解错误。

三、常见的错误和解决技巧1. 连接错误:当无法连接到MySQL服务器时,错误日志记录连接错误的详细信息。

这可能是由于网络问题、权限配置错误或服务器故障引起的。

解决技巧包括检查服务器是否正在运行、检查网络连接是否正常以及查看用户权限。

2. 查询错误:MySQL查询错误可能涉及语法错误、表不存在或字段命名问题等。

错误日志通常会提供有关错误的详细信息,包括查询语句和错误代码。

解决技巧包括仔细检查查询语句、确认表和字段名称是否正确以及查看错误代码对应的文档。

3. 锁定和死锁:当多个会话同时访问同一资源时,可能会发生锁定和死锁问题。

错误日志会记录相关信息,如锁定的表和会话ID。

解决技巧包括检查并优化查询语句、增加索引以及使用事务控制来避免死锁。

4. 磁盘空间不足:MySQL错误日志还可以记录磁盘空间不足的警告。

解决技巧包括释放磁盘空间、定期清理数据库或将数据库迁移到更大的磁盘。

开启MySQL的binlog日志及日志详解

开启MySQL的binlog日志及日志详解

开启MySQL的binlog⽇志及⽇志详解Mysql的binlog开启binlog 就是binary log,⼆进制⽇志⽂件,这个⽂件记录了mysql所有的dml操作。

通过binlog⽇志我们可以做数据恢复,做主住复制和主从复制等等。

对于开发者可能对binlog并不怎么关注,但是对于运维或者架构⼈员来讲是⾮常重要的。

如何开启mysql的binlog⽇志呢?在my.inf主配置⽂件中直接添加三⾏[plain]1. log_bin=ON2. log_bin_basename=/var/lib/mysql/mysql-bin3. log_bin_index=/var/lib/mysql/mysql-bin.index三个参数来指定,第⼀个参数是打开binlog⽇志第⼆个参数是binlog⽇志的基本⽂件名,后⾯会追加标识来表⽰每⼀个⽂件第三个参数指定的是binlog⽂件的索引⽂件,这个⽂件管理了所有的binlog⽂件的⽬录当然也有⼀种简单的配置,⼀个参数就可以搞定[plain]1. log-bin=/var/lib/mysql/mysql-bin这⼀个参数的作⽤和上⾯三个的作⽤是相同的,mysql会根据这个配置⾃动设置log_bin为on状态,⾃动设置log_bin_index⽂件为你指定的⽂件名后跟.index这些配置完毕之后对于5.7以下版本应该是可以了,但是我们这个时候⽤的如果是5.7及以上版本的话,重启mysql服务会报错。

这个时候我们必须还要指定⼀个参数[plain]1. server-id=123454随机指定⼀个不能和其他集群中机器重名的字符串,如果只有⼀台机器,那就可以随便指定了有了上述的配置之后,我们就可以重新启动我们的mysql了service mysqld restart启动成功之后,我们可以登陆查看我们的配置是否起作⽤[plain]1. show variables like '%log_bin%'下⾯我们可以找到这个⽬录来看⼀下因为我这⾥已经操作过数据库了,所以能看到这⾥有多个mysql-bin的⽂件,还有⼀个mysql-bin.index的⽂件,我们可以打开这个⽂件来看⼀下到这⾥,我们的binlog⽇志就打开了。

数据库操作记录日志

数据库操作记录日志

数据库操作记录日志
数据库操作记录日志是一种记录数据库操作的行为和变化的过程。

通过记录这些变化,可以有效地追踪并检索历史数据和信息。

以下是一些数据库常见的操作记录日志的方法:
1. 事务日志(Transaction Log):事务日志是记录数据库中所有事务的操作过程的一种机制。

每个事务的所有操作都被记录下来,以便需要时可以恢复数据库。

2. 数据库日志(Database Log):数据库日志是记录数据库所有修改操作的一种记录方式。

它包含了所有对数据库的更新、删除或插入等操作,包括对表、行和字段的修改。

3. 命令日志(Command Log):命令日志是记录数据库执行的SQL命令的一种记录方式。

它可以用来检查执行的SQL语句是否正确,以及跟踪数据库执行的所有操作。

4. 连接日志(Connection Log):连接日志是记录数据库用户连接和断开的一种记录方式。

它可以用来检查谁访问数据库,以及谁占用了数据库的连接资源。

5. 慢查询日志(Slow Query Log):慢查询日志是记录数据库慢查询的一种记录方式。

慢查询通常指执行时间超过设定阈值的查询语句,通过记录这些查询可以帮助优化数据库性能。

记录数据库操作的日志是数据库管理的一个重要环节,可以帮助管理员追踪历史数据和信息,并及时发现和处理问题。

mysql-笔记-命名、索引规范

mysql-笔记-命名、索引规范

mysql-笔记-命名、索引规范1 命名规范普通索引:idx_字段名唯⼀索引:ux_字段名所有数据库对象名称必须使⽤⼩写字母并⽤下划线分割禁⽌使⽤mysql保留关键字 ---如果表名中包含关键字查询时,需要将其有单引号括起来见名识意,并且最后不要超过32个字符临时库表以tmp_为前缀并以⽇期为后缀,备份表以bak_为前缀并以⽇期为后缀所有存储相同数据的列名和列类型必须⼀致--⼀般作为关联列,如果查询时关联列类型不⼀致会⾃动进⾏数据类型隐式转换,会造成列上的索引失效,导致查询效率降低2 数据库基本设计规范没有特殊要求下,所有表必须使⽤innodb存储引擎--⽀付事务、⾏级锁、更好的恢复性、⾼并发下性能更好数据库和表的字符集统⼀使⽤utf8---统⼀字符集可以避免由于字符集转换产⽣的乱码,不同的字符集进⾏⽐较前需要进⾏转换会造成索引失效所有表和字段都需要添加注释--使⽤comment从句添加表和列的备注进⾏数据字典的维护尽量控制单表数据量的⼤⼩,建议控制在500万以内,过⼤会造成修改表结构、备份、恢复都会有很⼤的问题。

可以⽤历史数据归档应⽤于⽇志数据,分库分表应⽤于业务数据等⼿段谨慎使⽤mysql分区表--分区表在物理上表现为多个⽂件,在逻辑上表现为⼀个表,跨分区查询效率可能更低,建议采⽤物理分表的⽅式管理⼤数据尽量做到冷热数据分离,减⼩表的宽度--mysql限制每个表最多存储4096列,并且每⼀⾏数据在⼤⼩不能超过65535字节减少磁盘IO--保证热数据的内存缓存命中率,避免读⼊⽆⽤的冷数,经常⼀起使⽤的列放到⼀个表中避免更多的关联操作。

禁⽌在表中建⽴预留字段--⽆法确认存储的数据类型,对预留字段类型的修改会对表进⾏锁定禁⽌在数据库中存储图⽚,⽂件等⼤的⼆进制数据---IO操作耗时,通常存储于⽂件服务器,数据库只存储⽂件地址信息禁⽌在线上做数据库压⼒测试禁⽌从开发环境、测试环境直接连接⽣成环境数据库2 数据库字段设计规范优先选择符合存储需要的最⼩的数据类型-- 字段⼤,建⽴索引空间⼤,IO次数多,索引性能差 1 将字符串转换成数字类型存储如:IP地址-插⼊数据前先⽤inet_aton把ip地址转为整型,节省空间,显⽰数据时使⽤inet_ntoa把整型ip 地址转为地址显⽰即可 2 对于⾮负型的数据如⾃增id IP 要优先使⽤⽆符号整型来存储,⽆符号相对于有符号可以多出⼀倍的存储空间 SIGNED INT -2147483648~2147483647 UNSIGNED INT 0~4294967295 VARCHAR(N)中的N代表的是字符数,⽽不是字节数 使⽤UTF8存储255个汉字 Varchar(255)=765个字节。

黑马程序员mysql运维篇笔记

黑马程序员mysql运维篇笔记

黑马程序员MySQL运维篇笔记一、MySQL概述MySQL是一个流行的关系型数据库管理系统,广泛应用于各种场景,如Web开发、数据存储和数据分析等。

了解MySQL的基本概念、安装和配置是进行MySQL运维的基础。

二、MySQL安装与配置1.安装方式:可以选择源码安装、二进制安装或使用包管理器进行安装。

2.配置文件:MySQL的配置文件为f,其中包含了各种服务器参数,可以根据实际需求进行修改。

3.启动与停止:可以通过命令行工具或系统服务管理器来启动和停止MySQL服务。

三、MySQL基本操作1.创建数据库:使用CREATE DATABASE语句创建一个新的数据库。

2.删除数据库:使用DROP DATABASE语句删除一个数据库。

3.创建表:使用CREATE TABLE语句创建一个新的表。

4.删除表:使用DROP TABLE语句删除一个表。

5.插入数据:使用INSERT INTO语句向表中插入数据。

6.查询数据:使用SELECT语句查询表中的数据。

7.更新数据:使用UPDATE语句更新表中的数据。

8.删除数据:使用DELETE语句删除表中的数据。

四、MySQL性能优化1.索引优化:合理使用索引可以大大提高查询速度,但要注意避免过度索引。

2.SQL优化:优化SQL语句可以提高查询效率,如避免SELECT *,尽量使用连接(JOIN)代替子查询等。

3.服务器硬件优化:根据实际需求合理配置服务器硬件,如增加内存、使用SSD硬盘等。

4.定期备份与恢复:定期备份数据库可以防止数据丢失,而恢复备份可以帮助快速恢复数据。

5.监控与日志分析:使用工具监控MySQL服务器的性能指标,分析日志文件可以帮助排查问题。

6.安全性:加强MySQL服务器的安全性,如设置强密码、禁用不必要的功能等。

7.高可用性:通过主从复制、负载均衡等方式提高MySQL服务器的可用性。

8.数据迁移:在需要时可以将数据迁移到其他存储介质或服务器上,以满足性能或扩展需求。

MySQL中的日志管理与审计技巧

MySQL中的日志管理与审计技巧

MySQL中的日志管理与审计技巧概述在今天的数字化时代,数据安全和合规性变得越来越重要。

对于大多数企业来说,数据是他们最重要的资产之一,因此需要确保数据的安全和保密性。

MySQL作为一种广泛使用的关系型数据库管理系统,日志管理与审计技巧是非常重要的。

1. 日志的意义日志是MySQL中记录了数据库操作的重要组成部分。

它记录了系统中发生的所有事件,包括用户对数据库的读写操作、系统错误和警告、事务处理等。

通过对日志的分析,可以了解数据库的使用情况,排查故障,追踪和监控数据库操作等。

2. MySQL中的日志类型MySQL提供了多种类型的日志,主要包括错误日志、查询日志、二进制日志、慢查询日志和事务日志。

每种类型的日志都有其特定的用途和功能,可以根据实际需求进行设置和管理。

- 错误日志:记录了MySQL服务器运行过程中的错误和警告信息,对于排查数据库的故障非常有用。

可以通过修改f配置文件来设置错误日志的路径和详细程度。

- 查询日志:记录了所有执行的查询语句,包括SELECT、INSERT、UPDATE、DELETE等操作。

可以通过修改f配置文件来设置查询日志的开启与关闭,以及日志文件的保存路径。

- 二进制日志:记录了服务器上的所有更改数据的操作,包括数据的修改、删除和插入。

它是MySQL数据库复制和恢复的基础。

可以通过修改f配置文件来设置二进制日志的开启与关闭,以及日志文件的保存路径。

- 慢查询日志:记录了执行时间超过阈值的查询语句,可以帮助用户找出执行效率低下的查询语句。

通过修改f配置文件来设置慢查询日志的开启与关闭,以及执行时间的阈值。

- 事务日志:记录了数据库中所有事务的开始和结束等操作,用于保证数据库的一致性和可恢复性。

事务日志的配置主要涉及到InnoDB存储引擎。

3. 日志管理的技巧为了更好地管理和审计MySQL日志,以下是一些实用的技巧:- 合理设置日志的保留时间和保存路径:根据实际需求,合理设置日志的保留时间。

MySQL数据库的日志管理和审计策略

MySQL数据库的日志管理和审计策略

MySQL数据库的日志管理和审计策略概述MySQL数据库是一种广泛使用的关系型数据库管理系统,数据安全一直是任何数据库系统都需要考虑的重要问题之一。

在MySQL中,日志管理和审计策略起着至关重要的作用,可以有效地跟踪和管理数据库操作。

本文将详细探讨MySQL数据库的日志管理和审计策略,帮助读者加深对该问题的了解。

一、MySQL日志类型MySQL数据库具有多种类型的日志,包括二进制日志、错误日志、查询日志、慢查询日志和事务日志等。

这些日志记录了数据库的不同方面的活动和错误信息,有助于管理员进行故障排查、性能优化和安全审计等工作。

1. 二进制日志二进制日志是MySQL最重要的日志之一,它记录了所有对数据库执行的修改操作,包括插入、更新和删除等。

二进制日志还可以用于数据库的备份和恢复,并能防止数据丢失。

管理员可以通过设置二进制日志的参数来控制日志文件的大小和保留时间等。

2. 错误日志错误日志记录了MySQL数据库的错误和警告信息,包括启动和关闭数据库服务的相关信息。

管理员可以通过检查错误日志来识别并解决潜在的问题,如数据库连接失败、语法错误和权限问题等。

3. 查询日志查询日志记录了所有被执行的查询语句,包括SELECT、INSERT、UPDATE 和DELETE等操作。

通过查看查询日志,管理员可以了解数据库的访问模式和性能瓶颈,并进行相应的调整和优化。

4. 慢查询日志慢查询日志记录了执行时间超过预设阈值的查询语句。

管理员可以通过分析慢查询日志来识别查询性能问题,并优化查询语句或数据库结构以提高性能。

5. 事务日志事务日志也称为redo日志,记录了数据库事务的更改信息。

事务日志在数据库崩溃或重启后用于恢复数据库的一致性,并确保事务的持久性。

管理员可以通过设置事务日志的大小和存储位置等参数来管理和保护数据库的事务。

二、MySQL日志管理策略良好的日志管理策略对于保护数据库和追踪数据库活动至关重要。

以下是一些有效的MySQL日志管理策略:1. 设置合适的日志级别MySQL日志级别由server层的参数log_error_verbosity控制,管理员可以根据需要设置适当的日志级别。

数据库管理员的工作日记

数据库管理员的工作日记

数据库管理员的工作日记2023年5月1日。

今天是一个忙碌的一天,早上我来到办公室,第一件事就是检查昨天晚上运行的备份任务是否正常完成。

幸运的是,所有的备份任务都顺利完成,没有出现任何问题。

接着我开始检查数据库的性能,通过监控工具我发现有一些数据库的性能出现了下降,于是我立即对这些数据库进行了优化,包括索引优化、查询优化等。

这些优化工作需要耗费一些时间,但是对于数据库的性能提升是非常有帮助的。

下午,我接到了一个紧急的任务,某个数据库出现了严重的故障,导致公司的业务受到了影响。

我立即前往现场,对数据库进行了全面的诊断和修复。

经过几个小时的努力,我终于成功地恢复了数据库的正常运行,公司的业务也恢复了正常。

这次故障的处理让我感到有些疲惫,但是看到公司的业务能够正常运行,我觉得一切都是值得的。

晚上,我回到办公室,开始对数据库的安全性进行检查。

我对数据库的用户权限进行了审计,发现一些不合规的操作,于是我立即对这些权限进行了调整,确保数据库的安全性。

同时,我还对数据库的备份策略进行了调整,确保数据的安全性和可靠性。

2023年5月2日。

今天的工作依然是繁忙的,早上我对数据库的性能进行了再次的监控和优化。

我发现一些潜在的性能问题,并对这些问题进行了及时的处理,确保数据库的性能稳定。

同时,我还对数据库的容量进行了评估,发现一些数据库即将达到容量上限,于是我开始对这些数据库进行了扩容的准备工作。

下午,我接到了一个新的任务,公司要上线一个新的业务系统,需要我对数据库进行部署和配置。

我立即开始了这项工作,对数据库进行了新的部署和配置,确保新的业务系统能够顺利运行。

同时,我还对数据库的监控和告警进行了设置,确保新的业务系统能够在最佳的状态下运行。

晚上,我对数据库的备份策略进行了再次的审查和调整,确保数据的安全性和可靠性。

同时,我还对数据库的性能进行了最后的检查,确保数据库的性能稳定。

这样一天的工作结束了,我感到非常满足和充实。

mysql的日志类型

mysql的日志类型

mysql的日志类型(实用版)目录1.MySQL 日志概述2.MySQL 日志类型及其作用3.配置 MySQL 日志的方法正文【MySQL 日志概述】MySQL 是一款流行的开源关系数据库管理系统,它在数据库管理过程中会产生各种日志。

这些日志记录了数据库的运行状态、操作记录等信息,对于数据库的监控、故障排查以及数据恢复具有重要的参考价值。

【MySQL 日志类型及其作用】MySQL 的日志类型主要有以下几种:1.错误日志(Error Log):记录了 MySQL 服务器在运行过程中遇到的错误和警告信息,对于数据库管理员来说,通过查阅错误日志可以快速定位和解决数据库运行中出现的问题。

2.查询日志(Query Log):记录了数据库中的 SQL 查询语句,包括查询的执行时间、结果行数等信息。

查询日志对于优化数据库性能和排查慢查询非常有帮助。

3.慢查询日志(Slow Query Log):与查询日志类似,慢查询日志记录了执行时间较长的 SQL 查询语句。

通过分析慢查询日志,可以找出性能瓶颈,针对性地优化数据库。

4.事务日志(InnoDB Log):MySQL 使用 InnoDB 存储引擎时,会记录事务日志。

事务日志记录了事务的启动、提交、回滚等信息,对于保证数据一致性和恢复事务非常重要。

5.二进制日志(Binary Log):记录了数据库中的数据变更操作,包括对表的增删改操作。

二进制日志对于数据备份和恢复具有重要作用。

【配置 MySQL 日志的方法】MySQL 的日志类型和记录级别可以通过配置文件进行调整。

以下是一些常用的配置参数:1.log-error:设置是否记录错误日志,取值为 0 或 1。

默认值为 1。

2.log-queries-not-using-indexes:设置是否记录未使用索引的查询日志,取值为 0 或 1。

默认值为 0。

3.log-slow-queries:设置是否记录慢查询日志,取值为 0 或 1。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Mysql日志管理笔记(5.7版本)wangzz四种日志文件:1,二进制日志:以二进制形式记录数据库的各种操作,但不记录查询语句.2,错误日志: 该日志文件记录mysql服务器启动,关闭和运行时的出错等信息。

3,通用查询日志:记录mysql启动,关闭,及客户端的连接信息,更新数据记录sql语句和查询数据记录sql语句.4,慢查询日志:记录执行时间超过指定时间的各种操作,通过工具分析慢查询日志可以定位性能瓶颈。

1,二进制日志1)启动二进制日志/etc/f 文件。

[mysqld]log-bin[=dir/[filename]]server_id=100log-bin=/export/app/log/binlog/binlog.log重启服务就可以启动二进制日志文件,如果启动不了。

看log-error日志,你会时到重启不了的原因mysql> show variables like '%bin%';+-----------------------------------------+-------------------------------------+| Variable_name | Value |+-----------------------------------------+-------------------------------------+| bind_address | * || binlog_cache_size | 32768 || binlog_checksum | CRC32 || binlog_direct_non_transactional_updates | OFF || binlog_error_action | ABORT_SERVER || binlog_format | ROW || binlog_group_commit_sync_delay | 0 || binlog_group_commit_sync_no_delay_count | 0 || binlog_gtid_simple_recovery | ON || binlog_max_flush_queue_time | 0 || binlog_order_commits | ON || binlog_row_image | FULL || binlog_rows_query_log_events | OFF || binlog_stmt_cache_size | 32768 || innodb_api_enable_binlog | OFF || innodb_locks_unsafe_for_binlog | OFF || log_bin | ON || log_bin_basename | /export/app/log/binlog/binlog || log_bin_index | /export/app/log/binlog/binlog.index || log_bin_trust_function_creators | OFF || log_bin_use_v1_row_events | OFF || log_statements_unsafe_for_binlog | ON || max_binlog_cache_size | 18446744073709547520 || max_binlog_size | 1073741824 || max_binlog_stmt_cache_size | 18446744073709547520 || sql_log_bin | ON || sync_binlog | 1 |+-----------------------------------------+-------------------------------------+27 rows in set (0.00 sec)查看二进制日志文件[root@risoserverbinlog]# mysqlbinlog binlog.000001停止二进制日志文件(ROOT用户权限)方法1,/etc/f 文件删除bin-log行。

重启服务就可以了。

方法2,SET SQL_LOG_BIN=0 暂停二进制日志文件SET SQL_LOG_BIN=1 开启二进制日志文件删除二进制日志文件RESET MASTER;删除所有PURGE MASTER LOGS TO filename.number,例: purge master logs to 'binlog.000003'; 删除编号少于000003的所有二进制BINlog文件PURGE MASTER LOGS BEFORE 'YYYY-MM-DD HH:MM:SS'例: purge master logs befor '2016-08-29 18:00:01' 删除上述时间之前的所有二进制文件2)错误日志文件启动错误日志文件:默认开启,无法禁止,就算my.ini文件不设定它。

照样存在数据库中,保存默认数据库数据文件里。

当然也可以修改此路径。

log-error=/export/app/log/errorlog/errorlog.log 注意创建目录,以及更改权限目录,重启服务即可。

查看错误日志文件:普通文本文件停止错误日志文件:无法停止删除错误日志文件:mysqladmin -u root -p flush-logs 创建一个新的,然后将旧的更名为filename.err-old,再由管理员来确认是否手工删除该文件.3)通用查询日志(因为记录所有客户端连接及操作库信息,信息量大。

影响数据库性能,一般建议关闭)通用查询日志可以存放到一个文本或一个表中,所有连接的语句都被记录到该日志文件或者表中,缺省未开启。

通过 --log[=file_name]或-l [file_name]选项启动它。

如果没有给定file_name的值,默认名是host_name.log。

mysqld按照它接收的顺序记录语句到查询日志。

这可能与执行的顺序不同。

不同于更新日志和二进制日志,它们在查询执行后,但是任何一个锁释放之前记录日志。

查询日志包含所有语句,而二进制日志不包含只查询数据的语句。

服务器重新启动和日志刷新不会产生新的一般查询日志文件。

启动通用查询日志: 默认关闭,启动设定/etc/f 文件:log_output=[none|file|table|file,table] #通用查询日志输出格式general_log=[on|off] #是否启用通用查询日志general_log_file[=filename] #通用查询日志位置及名字例: general_log_file=/export/app/log/generallog/risoserver.log默认是在数据库文件中,更改后我们可以查询一次.mysql> show variables like '%version%';+-------------------------+------------------------------+| Variable_name | Value |+-------------------------+------------------------------+| innodb_version | 5.7.14 || protocol_version | 10 || slave_type_conversions | || tls_version | TLSv1,TLSv1.1 || version | 5.7.14-log || version_comment | MySQL Community Server (GPL) || version_compile_machine | x86_64 || version_compile_os | Linux |+-------------------------+------------------------------+8 rows in set (0.01 sec)mysql> show variables like '%general%'; --更改前+------------------+----------------------------------+| Variable_name | Value |+------------------+----------------------------------+| general_log | OFF || general_log_file | /export/app/mysql/risoserver.log |+------------------+----------------------------------+2 rows in set (0.00 sec)mysql> show variables like '%general_%';+------------------+-------------------------------------------+| Variable_name | Value |+------------------+-------------------------------------------+| general_log | OFF | --这个时候只是更改了路径,但默认还是未开启状态。

| general_log_file | /export/app/log/generallog/risoserver.log | --这是更改后的。

+------------------+-------------------------------------------+2 rows in set (0.00 sec)[root@risoservererrorlog]# ls /export/app/log/generallog/risoserver.logls: cannot access /export/app/log/generallog/risoserver.log: No such file or directory --未产生文件启动通用查询日志:mysql> set @@global.general_log=1; --开启,0 是关闭停止通用查询日志:Query OK, 0 rows affected (0.03 sec)mysql> show variables like '%general%';+------------------+-------------------------------------------+| Variable_name | Value |+------------------+-------------------------------------------+| general_log | ON || general_log_file | /export/app/log/generallog/risoserver.log |+------------------+-------------------------------------------+2 rows in set (0.00 sec)[root@risoservererrorlog]# ls /export/app/log/generallog/risoserver.log/export/app/log/generallog/risoserver.log --文件已经生成[root@risoservererrorlog]# mysql -uroot -p1111mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 5Server version: 5.7.14-log MySQL Community Server (GPL)Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help.Type '\c' to clear the current input statement.mysql> use mysqlReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> select user,host from user;+-----------+--------------+| user | host |+-----------+--------------+| root | % || mysql.sys | 192.168.1.54 || nono | 192.168.1.54 || wangzz | 192.168.1.54 |+-----------+--------------+4 rows in set (0.00 sec)mysql> drop user nono;ERROR 1396 (HY000): Operation DROP USER failed for 'nono'@'%'mysql> drop user 'nono'@'192.168.1.54';Query OK, 0 rows affected (0.02 sec)mysql> exitBye[root@risoservererrorlog]# more /export/app/log/generallog/risoserver.log查看通用查询日志:/usr/sbin/mysqld, Version: 5.7.14-log (MySQL Community Server (GPL)). started with:Tcp port: 3306 Unix socket: /export/app/mysql/mysql.sockTime Id Command Argument2016-08-30T07:41:11.888155Z 4 Query show variables like '%general%'2016-08-30T07:41:37.164497Z 4 Quit2016-08-30T07:43:00.028798Z 5 Connect root@localhoston using Socket2016-08-30T07:43:00.029097Z 5 Query select @@version_comment limit 12016-08-30T07:43:07.815420Z 5 Query SELECT DATABASE()2016-08-30T07:43:07.824000Z 5 Init DB mysql2016-08-30T07:43:07.825750Z 5 Query show databases2016-08-30T07:43:07.844654Z 5 Query show tables2016-08-30T07:43:07.845260Z 5 Field List columns_priv2016-08-30T07:43:07.845635Z 5 Field List db2016-08-30T07:43:07.846286Z 5 Field List engine_cost2016-08-30T07:43:07.846707Z 5 Field List event2016-08-30T07:43:07.847342Z 5 Field List func2016-08-30T07:43:07.847632Z 5 Field List general_log2016-08-30T07:43:07.848020Z 5 Field List gtid_executed2016-08-30T07:43:07.848334Z 5 Field List help_category2016-08-30T07:43:07.849232Z 5 Field List help_keyword2016-08-30T07:43:07.855902Z 5 Field List help_relation2016-08-30T07:43:07.856912Z 5 Field List help_topic2016-08-30T07:43:07.896056Z 5 Field List innodb_index_stats2016-08-30T07:43:07.896976Z 5 Field List innodb_table_stats2016-08-30T07:43:07.900019Z 5 Field List ndb_binlog_index2016-08-30T07:43:07.901291Z 5 Field List plugin2016-08-30T07:43:07.901523Z 5 Field List proc2016-08-30T07:43:07.908515Z 5 Field List procs_priv2016-08-30T07:43:07.908906Z 5 Field List proxies_priv2016-08-30T07:43:07.909355Z 5 Field List server_cost2016-08-30T07:43:07.909675Z 5 Field List servers2016-08-30T07:43:07.910154Z 5 Field List slave_master_info2016-08-30T07:43:07.911203Z 5 Field List slave_relay_log_info2016-08-30T07:43:07.911706Z 5 Field List slave_worker_info2016-08-30T07:43:07.912408Z 5 Field List slow_log2016-08-30T07:43:07.927753Z 5 Field List tables_priv2016-08-30T07:43:07.928191Z 5 Field List time_zone2016-08-30T07:43:07.928505Z 5 Field List time_zone_leap_second2016-08-30T07:43:07.928825Z 5 Field List time_zone_name2016-08-30T07:43:07.929068Z 5 Field List time_zone_transition2016-08-30T07:43:07.929406Z 5 Field List time_zone_transition_type2016-08-30T07:43:07.929887Z 5 Field List user2016-08-30T07:43:27.363704Z 5 Query select user,host from user2016-08-30T07:43:35.350455Z 5 Query drop user nono --没执行的语句也进去了。

相关文档
最新文档