MySQL日志操作的一些基本命令摘要
MySQL日志包括错误日志、查询日志、慢速查询日志、事务日志、二进制日志;日志是MySQL数据库的一个重要组成部分。在MySQL数据库运行日志文件记录的变化,也就是说,对MySQL数据库的客户端连接状态记录,和错误的SQL语句执行等信息,在数据库意外损坏,您可以通过日志检查错误的原因可恢复的数据通过日志文件。
错误日志
在MySQL数据库中,错误日志功能是默认打开的,错误日志不能禁止。默认情况下,错误日志存储在MySQL数据库的数据文件。错误日志文件的名字是hostname.err.in正常,主机是服务器主机名。
错误日志中的信息可以被配置,错误日志记录的信息可以通过日志错误日志警报定义,在错误日志的定义是否错误日志和错误日志功能的存储位置,日志警告定义如果报警信息定义的错误日志。默认情况下,错误日志记录了以下信息:在信息处理服务器的启动和关闭(不一定是错误的信息,表空间文件如MySQL InnoDB如何开始、如何初始化它的存储引擎等),服务器在运行过程中的错误信息,事件调度程序运行时生成的事件信息从服务器的服务器处理信息时产生的我NG。
让我们定义MySQL错误日志的函数。
一般来说,日志级别的定义在全局级别没有回答,变量由。
是否启用了日志
MySQL >显示变量like'log_bin;
如何知道当前日志
显示主状态;
二进制日志文件
看看mysqlbinlog二进制日志文件
mysqlbinlog mail-bin.000001壳>
也许
壳> mysqlbinlog mail-bin.000001尾|
注意:如果未指定的日志目录,配置目录的datadir配置目录默认选中,并配置目录被认为是通过my.ini
windows下使用类似的命令。
在5.6或以上的版本,必须手动指定的file_name默认版本为datadir / mysqld以下版本5.6 binlog
二进制日志用于记录所有更改数据的语句,主要用于复制和即时点恢复。
在二进制日志的工具是:mysqlbinlog
二进制日志包含所有语句更新数据或有可能更新的数据(例如,删除不符合任何行)。表保存在一个事件的形式,它描述了数据的变化。二进制日志还包含有关每个更新数据库的语句的执行时间信息。它不包含语句不修改任何数据。
二进制日志的主要目的是在数据库发生故障时恢复数据库(即时点恢复),因为二进制日志包含备份后的所有更新,二进制日志也用来记录将在主复制服务器上发送到从服务器的所有语句。
二进制日志是执行后语句或结果数据的执行记录吗
第一例:
添加一个表有10万行数据,现在您必须执行以下语句之一,在原始的基础上增加字段值的1000。
更新sales.january设置金额=金额+ 1000;
在这种情况下,如果您希望在执行之后记录结果数据,日志将非常大。
因此,在这种情况下,应该执行执行语句,这是基于语句的二进制日志。
第二例:
如果当前时间被插入到字段中呢如下:
插入肺结核组出生日期= current_time();
此时无法记录语句,因为结果在不同的时间是不同的,这是应该记录的行的值,这是基于行的二进制日志。
在某些情况下,可以用两种方式记录,一种称为混合模式的二进制日志。
二进制日志记录时间:
默认情况下,二进制日志不与硬盘每次写同步。如果操作系统或机器(不仅仅是MySQL服务器)的崩溃,这是可能的,在二进制日志中的最后一个语句丢失。为了避免这种情况,你可以使用全局变量(1 sync_binlog最安全的价值,但也最慢的),所以,二进制日志同步硬盘后每个二进制日志。
更新后的非事务表被执行,它被保存到二进制日志立即。事务表,如BDB和InnoDB表,所有的更新,更新表(更新、删除或插入)缓存到服务器接收COMMIT语句。在这一点上,他写了整个事务的二进制日志执行commit之前。当处理事务启动线程,它分配的缓冲区的大小binlog_cache_size查询内存。如果语句大于价值,线程打开临时文件保存交易。临时文件删除后的线头。
日志恢复:(数据库备份时间:一2013-02-30 10:10:10数据错误:在2013-02-30 10:10:10)
使用mysqlbinlog.exe工具
(1)打开CMD并输入日志目录
(2)恢复备份数据库
(3)重新将日志从备份数据库执行到以前的错误。
例如,1:按时间恢复
mysqlbinlog——开始日期=2013-02-30 10:10:10 --停止日期=2013-02-30 10:10:10log.00001 MySQL -中- p123456 |
因为在测试中发现,按时间还原SQL时间是不准确的,这就是要研究的标记。
例如,2:日志位置的恢复(必须打开日志,确定开始恢复日志的位置和日志在错误之前的位置)
(a):
mysqlbinlog log.00001 > F:log.sql
导入二进制文件到文件的日志log.sql log.00001
(b):打开log.sql日志文件并确定恢复点
(c):
mysqlbinlog——起始位置= 5230766 --停止位置=5231104pc-201304011235-bin.000001 MySQL -中- p111111 |
注意:必须|在MySQL的信息重新执行日志之间的这一点