mysql开启binlog日志和慢查询日志

本文介绍了MySQL中binlog和慢查询日志的作用与配置方法,包括如何通过这些日志进行数据恢复及性能优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1)首先,为什么要开启binlog日志和慢查询日志呢?

binlog日志会记录下数据库的所以增删改操作,当不小心删除、清空数据,或数据库系统出错,这时候就可以使用binlog日志来还原数据库,简单来说就是一个记录备份的东西

慢查询日志 slow_query_log,这个东西是用来记录查询比较慢的sql语句,通过查询日志来查找哪条sql语句比较慢,然后就可以进行数据库或sql语句或程序上的优化,简单来说就是一个优化辅助工具

 

PS:binlog日志应该一直开着(因为你不知道数据库哪一天会崩掉,或者哪天会误删一点东西),慢查询日志平时可以不开,当觉得网站运行慢,需要优化的话,可以打开慢查询来做一个辅助

 

2)开启binlog日志的方法

在my.cnf的[mysqld]下添加一个binlog配置就可以了(注意一定要加在[mysqld]下,如果加在[mysqld_safe]或其他位置下是不行的),配置如下:

log-bin=mysql-bin

PS:这上面的mysql-bin其实就是binlog日志文件的前缀来着,像上面设置的是mysql-bin(你可以改成mysql_bin或binlog或其他什么都可以),它就会在/var/lib/mysql/(默认位置)生成 mysql-bin.000001,mysql-bin.000002,mysql-bin.000003......等日志文件

 

3)开启慢查询日志

修改配置方法一(临时,重启mysqld后自动恢复):

set global log_slow_queries=ON;
set global slow_launch_time=10;

 

修改配置方法二(永久):

在my.cnf的[mysqld]下添加一个binlog配置就可以了(注意一定要加在[mysqld]下,如果加在[mysqld_safe]或其他位置下是不行的),配置如下:

log-slow-queries=/var/log/mysqld-slow.log
long_query_time=2

第一个配置是日志文件位置,第二个配置是慢查询的时间配置(秒),执行时间超过这个时间的查询语句会被记录下来

 


另一篇:

mysql有以下几种日志:  
   错误日志:     -log-err  
   查询日志:     -log  
   慢查询日志:   -log-slow-queries  
   更新日志:     -log-update  
   二进制日志: -log-bin  


是否启用了日志 
mysql>show variables like 'log_%'; 

怎样知道当前的日志 
mysql> show master status; 

顯示二進制日志數目 
mysql> show master logs; 

看二进制日志文件用mysqlbinlog 
shell>mysqlbinlog mail-bin.000001 
或者shell>mysqlbinlog mail-bin.000001 | tail 

在配置文件中指定log的輸出位置. 
Windows:Windows 的配置文件为 my.ini,一般在 MySQL 的安装目录下或者 c:\Windows 下。 
Linux:Linux 的配置文件为 my.cnf ,一般在 /etc 下。 

在linux下: 
Sql代码  收藏代码
  1. # 在[mysqld] 中輸入  
  2. #log  
  3. log-error=/usr/local/mysql/log/error.log  
  4. log=/usr/local/mysql/log/mysql.log  
  5. long_query_time=2  
  6. log-slow-queries= /usr/local/mysql/log/slowquery.log  


windows下: 
Sql代码  收藏代码
  1. # 在[mysqld] 中輸入  
  2. #log  
  3. log-error="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/error.log"  
  4. log="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/mysql.log"  
  5. long_query_time=2  
  6. log-slow-queries= "E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/slowquery.log"  


开启慢查询 
long_query_time =2  --是指执行超过多久的sql会被log下来,这里是2秒 
log-slow-queries= /usr/local/mysql/log/slowquery.log  --将查询返回较慢的语句进行记录 

log-queries-not-using-indexes = nouseindex.log  --就是字面意思,log下来没有使用索引的query 

log=mylog.log  --对所有执行语句进行记录


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值