mysql日志
来源:互联网 发布:淘宝尾款能合并付款吗 编辑:程序博客网 时间:2024/05/02 20:17
- mysql日志
- 分为4种分别是:二进制日志、错误日志、通用查询日志和慢查询日志。
- 二进制日志:以二进制文件的形式记录了数据库中的操作,但不记录查询语句。
- 错误日志:记录mysql服务器的启动、关闭的时间和运行错误等信息
- 通用查询日志:记录用户登录和记录查询的信息
- 慢查询日志:记录执行时间超过指定时间的操作。
- 注:除了二进制日志外,其他日志都是文本文件。日志文件通常存储在数据库的数据目录下。默认只启动错误日志的功能。其他3类日志都需要数据库管理员进行设置。日志功能会降低数据库执行速度,记录日志要花费很多时间。并且会占用大量的硬盘空间。
- 1、二进制日志:
- 也叫变更日志(update log)用于记录数据库变化。默认二进制日志功能是关闭的。可通过my.cnf或my.ini文件的log-bin选项可以开启二进制日志。将log-bin选项加入到my.cnf或者my.ini文件的[mysqld]组中,如:
- #my.cnf(Linux操作系统下)或者my.ini(windows操作系统下)
- [mysqld]
- log-bin[=Dir\[filename]]
- 其中,DIR参数指定二进制文件的存储路径;filename参数指定二进制文件的文件名,形式为filename.number,number形式为000001、000002等。每次重启mysql服务都会生成一个新的二进制日志文件,这些日志文件的"number"会不断递增。原来的日志文件任然存在,另外还会生成一个名为filename.index的文件。该文件存储所有二进制日志文件的清单。
- 注:二进制日志与数据库的数据文件不要放同一块硬盘,如果数据文件所在硬盘被破坏,也可以用另一块硬盘上的二进制日志来恢复数据库文件。
- 例:在my.ini文件的[mysqld]组中添加下面的语句
- [mysqld]
- log-bin
- 注:如果没dir和filename参数,默认存储在数据库的数据目录下,默认文件名为hostname-bin.number,其中hostname表示主机名。重启mysql服务器后可在数据目录下看到hjh-bin.-000001这个文件,同事还生成了hjh-bin.index文件。此处mysql服务器主机名为hjh。
- a、查看二进制日志
- 格式:mysqlbinlog filename.number
- 注:该命令会在当前文件夹下查找指定的二进制日志。因此需要在二进制日志filename.number所在目录下运行该命令。
- 如:C:/log>mysqlbinlog mylog.000001
- 如:mysqlbinlog C:\log\mylog.000001
- b、删除所有二进制日志
- 删除所有二进制日志,格式:reset master;
- c、根据编号来删除二进制日志,该命令可以删除指定二进制日志编号之前的日志。
- 格式:PURGE MASTER LOGS TO 'filename.number';
- 如:PURGE MASTER LOGS TO 'mylog.000004';执行后编号01、02、03的二进制日志将被删除。
- d、根据创建时间删除二进制日志,删除指定时间之前创建的二进制日志。如:
- PURGE MASTER LOGS TO 'yyyy-mm-dd hh:mm:ss';
- e、使用二进制日志还原数据库(先用最近备份文件来还原,之后用二进制日志还原)格式,如:
- mysqlbinlog filename.number|mysql -u root -p
- 注:编号小的先还原,如
- mysqlbinlog mylog.000001|mysql -u root -p
- mysqlbinlog mylog.000002|mysql -u root -p
- f、暂时停止二进制日志功能,如:set SQL_LOG_BIN=0;
- 重新开启格式:set SQL_LOG_BIN=1;
- 2、错误日志
- 默认错误日志功能是开启的。而且错误日志无法被禁止。存储在mysql数据库的数据文件夹下。通常名为hostname.err。其中hostname表示mysql服务器主机名。存储位置可以通过log-error选项来设置。将log-error选项加入到my.ini或者my.inf文件的[mysqld]组中。如:
- #my.cnf(Linux操作系统下)或者my.ini(windows操作系统下)
- [mysqld]
- log-error=Dir/[filename]
- 注:filename参数是错误日志名,没有该参数时默认为主机名。
- 由于是文本文件所以可以直接查看。
- a、删除错误日志
- 可以用mysqladmin命令开启新的错误日志。如:mysqladmin -uroot -p flush-logs
- 执行该命令后会自动创建一个新的错误日志。旧的错误日志仍然保留着,只是已经更名为filename.err-old。
- 或者登录数据库后用flush logs;来开启新的错误日志。
- 3、通用查询日志
- 默认是关闭的,通过my.cnf或者my.ini文件的log选项可以开启通用查询日志。形式如:
- #my.cnf(Linux操作系统下)或者my.ini(windows操作系统下)
- [mysqld]
- log[=Dir\[filename]]
- 如果不指定文件名,默认文件名为hostname.log。hostname是mysql服务器的主机名。
- 由于是文本文件所以可以直接查看。
- 新的通用查询日志会直接覆盖旧的查询日志,不用手动删除。如:
- mysqladmin -uroot -p flush-logs
- 4、慢查询日志
- 默认是关闭的,通过my.cnf或者my.ini文件的log-slow-queries选项可以开启慢查询日志。通过long_query_time选项来设置时间值,时间以秒为单位。超过这个值就会被记录到该日志,形式如:
- #my.cnf(Linux操作系统下)或者my.ini(windows操作系统下)
- [mysqld]
- log-slow-queries[=Dir\[filename]]
- long_query_time=n
- 注:生成的日志文件名为filename-slow.log。如不指定文件名,默认文件名为hostname-slow.log,默认n为10秒。
- benchmark(count,expr)函数可以测试执行count次expr。
- a、删除慢查询日志
- 命令如:mysqladmin -u root -p flush-logs,新的慢查询日志会直接覆盖旧的查询日志,不需要手动删除。也可以手工删除后重启服务会生成新的 慢查询日志。如果要备份旧的慢查询日志可以将旧的日志文件改名,然后重启服务。
0 0
- mysql日志-二进制日志
- MySQL日志--查询日志
- mysql日志
- mysql日志
- Mysql日志
- mysql日志
- mysql日志
- mysql日志
- MySQL日志
- mysql日志
- mysql 日志
- mysql 日志
- mysql日志
- mysql日志
- mysql日志
- MySQL日志
- mysql日志
- mysql日志
- 事件绑定on()、bind()与delegate() 方法详解
- 有关mysql死锁
- VTR-to-Bitstream 3 ToolChain Implementation on Linux
- 如何处理高并发情况下的DB插入
- 闪讯最新版WIFI共享+广告弹窗一招屏敝无反弹
- mysql日志
- BestCoder#44 ZYB loves Xor I
- SGU131 Hardwood floor
- Android Studio 引用so文件
- all - 激励9语
- 指针
- 备份恢复MySQL数据库的命令
- 我眼中的 Docker(一)docker、vm、lxc
- HTML5 上传文件极简示例