当前位置:网站首页 / 数据库 / 正文

ay msql 笔记 日志【13】

时间:2017年04月10日 | 作者 : aaronyang | 分类 : 数据库 | 浏览: 721次 | 评论 0

MySQL有几个不同的日志文件,可以帮助你找出mysqld内部发生的事情:

日志文件 

记入文件中的信息类型

错误日志

记录启动、运行或停止mysqld时出现的问题。

查询日志

记录建立的客户端连接和执行的语句。

更新日志

记录更改数据的语句。不赞成使用该日志。

二进制日志

记录所有更改数据的语句。还用于复制。

慢日志

记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。

      默认情况下,所有日志创建于mysqld数据目录中。通过刷新日志,你可以强制 mysqld来关闭和重新打开日志文件(或者在某些情况下切换到一个新的日志)。当你执行一个FLUSH LOGS语句或执行mysqladmin flush-logs或mysqladmin refresh时,出现日志刷新。

如果你正使用MySQL复制功能,从复制服务器将维护更多日志文件,被称为接替日志。相关讨论参见第6章:MySQL中的复制。

 错误日志

      错误日志文件包含了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。

如果mysqld莫名其妙地死掉并且mysqld_safe需要重新启动它,mysqld_safe在错误日志中写入一条restarted mysqld消息。如果mysqld注意到需要自动检查或着修复一个表,则错误日志中写入一条消息。

     可以用--log-error[=file_name]选项来指定mysqld保存错误日志文件的位置。如果没有给定file_name值,mysqld使用错误日志名host_name.err 并在数据目录中写入日志文件。如果你执行FLUSH LOGS,错误日志用-old重新命名后缀并且mysqld创建一个新的空日志文件。(如果未给出--log-error选项,则不会重新命名)。

     如果不指定--log-error,或者(在Windows中)如果你使用--console选项,错误被写入标准错误输出stderr。通常标准输出为你的终端。

     在Windows中,如果未给出--console选项,错误输出总是写入.err文件。

下面是mysql正常启动和关闭的一段日志:


101231 14:17:36  mysqld started

101231 14:17:37  mysqld ended

101231 14:21:59  mysqld started

101231 14:21:59  mysqld ended

101231 14:31:22  mysqld started

101231 14:31:23  mysqld ended

101231 14:40:16  mysqld started

101231 14:40:16  mysqld ended

101231 14:56:25  mysqld started

InnoDB: The first specified data file ./ibdata1 did not exist:

InnoDB: a new database to be created!

101231 14:56:25  InnoDB: Setting file ./ibdata1 size to 10 MB

InnoDB: Database physically writes the file full: wait...

101231 14:56:25  InnoDB: Log file ./ib_logfile0 did not exist: new to be crea

ted

InnoDB: Setting log file ./ib_logfile0 size to 5 MB

InnoDB: Database physically writes the file full: wait...

101231 14:56:26  InnoDB: Log file ./ib_logfile1 did not exist: new to be crea

ted

InnoDB: Setting log file ./ib_logfile1 size to 5 MB

InnoDB: Database physically writes the file full: wait...

InnoDB: Doublewrite buffer not found: creating new

InnoDB: Doublewrite buffer created

InnoDB: Creating foreign key constraint system tables

InnoDB: Foreign key constraint system tables created

101231 14:56:26  InnoDB: Started; log sequence number 0 0

101231 14:56:27 [Note] /usr/sbin/mysqld-max: ready for connections.

Version: '5.1.7-beta'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL

 Community Edition - Max (GPL)

101231 15:18:11 [Note] /usr/sbin/mysqld-max: Normal shutdown

101231 15:18:11  InnoDB: Starting shutdown...

101231 15:18:15  InnoDB: Shutdown completed; log sequence number 0 43655

101231 15:18:15 [Note] /usr/sbin/mysqld-max: Shutdown complete

101231 15:18:15  mysqld ended

101231 15:18:16  mysqld started

101231 15:18:17  mysqld ended

101231 15:30:02  mysqld started


MySQL服务器可以创建各种不同的日志文件,从而可以很容易地看见所进行的操作。但是,对于生产库而言,会产生大量的日志占用大量磁盘空间,你必须定期清理这些文件,确保日志不会占用太多的硬盘空间。

当启用日志使用MySQL时,你可能想要不时地备份并删除旧的日志文件,并告诉MySQL开始记入新文件。

   在 Linux (Redhat)的安装上,可为此使用mysql-log-rotate脚本。如果是以RPM方式安装MySQL的,脚本就已经自动被安装。在其它系统上,可从cron等入手处理日志文件。

   可以通过mysqladmin flush-logs或SQL语句FLUSH LOGS来强制MySQL开始使用新的日志文件。

日志清空操作做下列事情:

如果使用标准日志(--log)或慢查询日志(--log-slow-queries),关闭并重新打开日志文件。(默认为mysql.log和`hostname`-slow.log)。 

如果使用更新日志(--log-update)或二进制日志(--log-bin),关闭日志并且打开有更高序列号的新日志文件。 

如果你只使用更新日志,你只需要重新命名日志文件,然后在备份前清空日志。例如,你可以这样做:

shell> cd mysql-data-directory

shell> mv mysql.log mysql.old

shell> mysqladmin flush-logs

然后做备份并删除“mysql.old”。


推荐您阅读更多有关于“mysql,”的文章

猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  查看权限

抖音号:wpfui,可以看到我的很多作品效果

AYUI8社区版Github地址:前往获取

作者:杨洋(AaronYang简称AY,安徽六安人)目前是个人,还没公司AY唯一QQ:875556003和AY交流

高中学历,2015年1月17日开始,兴趣学习研究WPF,目前工作繁忙,不接任何活

声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费.AY主要靠卖技术服务挣钱

不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo

查看捐赠

AYUI7.X MVC教程 更新如下:

第一课 第二课 程序加密教程

兼容XP到win10,vs2015/2017/2019,最新AYUI:7.6.5.5

vs2015 企业版密钥HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

vs2017 企业版密钥NJVYC-BMHX2-G77MM-4XJMR-6Q8QF

标签列表