mysql 配置和日志

原创 2012年03月30日 11:20:11

目录:

1 配置说明

2 my.cnf修改log

3 命令说明

 

 

---------------------------------------------------------------------1 配置
my.cnf                           #find 查找my.cnf   /etc/my.cnf
data 目录                        1  查看my.cnf搜索datadir

                                      2 phpinfo搜索MYSQL_SOCKET            /var/lib/mysql/
                
      
------------------mysql 日志


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


通常, MySQL 的日志是放在它的数据库目录下。
要把日志生成在 /var/log 目录下(是系统日志存放的地方,只有 root 账号有写权限),需要 MySQL 进程对这个目录有读写权限,一般是不这么做的,也考虑到安全问题,包括 MySQL 本身的数据安全,因为对 MySQL 的所有操作,都会记录到常规查询日志。MySQL 的日志就不要用 /var/log/ 目录下。

---------------------------------------------------------------------2 my.cnf
# 在[mysqld] 中輸入

log-bin=/var/lib/mysql/mysql-bin

#expire_logs_days = 10
#max_binlog_size = 100M

log=/var/lib/mysql/mysql.log 
log-error=/var/lib/mysql/error.log

#log-update=/var/lib/mysql/update.log  未能成功生成

long_query_time=1 
log-slow-queries 
log-queries-not-using-indexes

 

 

 

 


#详细说明
log-bin=/var/lib/mysql/mysql-bin #二进制LOG,mysqlbinlog直接读取二进制日志文件。二进制日志包含所有更新数据的语句 ,其目的是在恢复数据库时用它来把数据尽可能恢复到最后的状态。另外,如果做同步复制( Replication )的话,也需要使用二进制日志传送修改情况。log_bin指定日志文件,如果不提供文件名,MySQL将 自己产生缺省文件名。MySQL会在文件名后面自动添加数字索引,每次启动服务时,都会重新生成一个新的二进制文件。

 

时间长了log bin也会占很大的硬盘空间,所以在my.ini中加上对其的限制。
#expire_logs_days = 10
#max_binlog_size = 100M

---------------------

# show master status;

#mysqlbinlog mysql-bin.000052

-------------格式如下:

flush privileges
/*!*/;
# at 173
#090814 10:09:22 server id 1  end_log_pos 448   Query   thread_id=51    exec_tim                                             e=0     error_code=0
use sq_gllutf8/*!*/;
SET TIMESTAMP=1250215762/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@sessio                                             n.collation_server=8/*!*/;
update gll_products set  sn_name='休闲裤'  ,ch_name='H957-3'  ,color='卡其'  ,co                                             mposition='60%马棉44'  ,huoqi=''  ,p_remarks=''  ,utime='2009-08-14 10:09:22'  ,                                             uip='192.168.200.96'   WHERE id = '339'
/*!*/;
# at 448
#090814 10:11:14 server id 1  end_log_pos 556   Query   thread_id=59    exec_tim                                             e=0     error_code=0
SET TIMESTAMP=1250215874/*!*/;
delete from gll_member  WHERE id = '26'
/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

-----------------------------------


log=/var/lib/mysql/mysql.log   #对所有执行语句进行记录

----------------------------格式如下:

090814 10:11:14      59 Connect     sq_szczkj@localhost on
                     59 Init DB     sq_gllutf8
                     59 Query       SET NAMES 'UTF8'
                     59 Query       delete from gll_member  WHERE id = '26'
                     59 Quit
090814 10:11:15      60 Connect     sq_szczkj@localhost on
                     60 Init DB     sq_gllutf8
                     60 Query       SET NAMES 'UTF8'
                     60 Query       select * from gll_member  ORDER BY id DESC
                     60 Query       select * from gll_member  ORDER BY id DESC   limit  0,50
                     60 Quit
                     61 Connect     sq_szczkj@localhost on
                     61 Init DB     sq_gllutf8
                     61 Query       SET NAMES 'UTF8'
                     61 Query       select * from gll_zone  ORDER BY id DESC
                     61 Query       select * from gll_zone  ORDER BY id DESC   limit  0,99
                     61 Quit

---------------------------------


log-error=/var/lib/mysql/error.log

#log-update=/var/lib/mysql/update.log  未能成功生成


long_query_time=1 
log-slow-queries

#--log-slow-queries[=file_name ] 的file_name参数可选,缺省值是host_name -slow.log ,如果指定了file_name参数的话,mysql就会把慢查询的日志记录到file_name所设定的文件中,如果 file_name提供的是一个相对路径,mysql会把日志记录到mysql的data目录中。
log-queries-not-using-indexes
 #在mysql的启动配置文件或命令行参数中增加--log-queries-not-using-indexes 参数就可以启用未使用索引查询语句了,日志记录的文件就是log-slow-queries对应的文件。

 

 

----------------Mysql的log_slow_queries日志文件设置不当错误

1,容易发生错误的设置: 
log_slow_queries = ON
log_slow_queries=/var/log/slow-queries.log
long_query_time=5
这种容易导致slow-queries.log无法读取的错误(权限问题)。 
常见错误提示: 
[ERROR] Could not use /var/log/slow-queries.log for
logging (error 13). Turning logging off for the whole duration of the
MySQL server process. To turn it on again: fix the cause, shutdown the
MySQL server and restart it.
 

2,比较妥当的配置: 
log_slow_queries = ON
log_slow_queries=slow-log
long_query_time=5
直接在目录/var/lib/mysql/ 下生成 slow-log 文件

 

 

 

----------------------------测试慢日志

mysql>select sleep(1);

mysql>select sleep(3);

mysql>select * from gll_products;

 

打开mysql.log和慢日志文件可以 看到

select sleep(3);

select * from gll_products;

 

 

---------------------------------------------------------------------3 命令说明

 

 

 

show variables like 'long%'; 查询 long_query_time 的值


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

mysql> show variables like 'log_%';
+---------------------------------+--------------------------+
| Variable_name                   | Value                    |
+---------------------------------+--------------------------+
| log_bin                         | ON                       |
| log_bin_trust_function_creators | OFF                      |
| log_error                       | /var/lib/mysql/error.log |
| log_queries_not_using_indexes   | ON                       |
| log_slave_updates               | OFF                      |
| log_slow_queries                | ON                       |
| log_warnings                    | 1                        |
+---------------------------------+--------------------------+

 

 



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

mysql>show variables like 'log_bin'; 确认你日志是否启用

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

查看从某一段时间到某一段时间的二进制日志
mysqlbinlog --start-datetime='2008-01-19 00:00:00' --stop-datetime='2008-01-30 00:00:00'  /var/lib/mysql/mysql-bin.000006 > mysqllog1.log

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

flush privileges;  刷新数据库 

mysql> SHOW STATUS;  运行下列命令可以获取状态变量的值:

mysql> SHOW STATUS LIKE ‘[匹配模式]’; ( 可以使用%、?等 )  如果只要检查某几个状态变量,可以使用下列命令:

select version(); 查看mysql版本

mysql日志设置

mysql文件种类 参数文件my.cnf 日志文件 socket文件 pid文件 mysql表结构文件 存储引擎文件 参数文件my.cnfMysql实例启动时,会先读取配置参数文件my.cn...
  • johnstrive
  • johnstrive
  • 2015年07月09日 10:22
  • 3161

windows下mysql5.6.x的日志正确配置方法(my.ini)

网上流传的日志配置版本绝大部分都是5.6以前的,使用该种配置之后启动mysql会报错1067服务器关闭。本文提供了5.6以后的各种日志的正确配置法。...
  • databatman
  • databatman
  • 2015年11月20日 20:54
  • 4761

mysql5.6.24 慢查询日志配置

分析慢查询日志是mysql性能调优的重要方法,在mysql 5.6.24 win32版本上进行慢查询日志的配置步骤记录如下。 1. 查看当前mysql的配置情况 启动mysql客户端,输入show...
  • lszzzz
  • lszzzz
  • 2016年01月01日 20:10
  • 812

mysql 慢查询日志设置

慢查询日志相关参数 MySQL 慢查询的相关参数解释: slow_query_log    :是否开启慢查询日志,1表示开启,0表示关闭。 log-slow-queries  ...
  • shukebai
  • shukebai
  • 2017年04月11日 17:26
  • 1672

msyql 日志篇(二)日志的常用配置和原理

1.mysql日志配置 2.如何启动日志 3.日志的存放与mysql的启动方式 4.慢查询日志相关的配置和解释说明 5.二进制日志的作用 6.中继日志的作用...
  • wanghantong
  • wanghantong
  • 2015年10月17日 17:57
  • 1068

MySQl Study学习之--MySQl二进制日志管理

MySQl Study学习之--MySQl二进制日志管理 MySQL二进制日志(Binary Log)   a、它包含的内容及作用如下:     包含了所有更新了数据或者已经潜在更新了数据(比...
  • lqx0405
  • lqx0405
  • 2015年07月08日 16:43
  • 8284

Windows下Mysql5.6启用监控执行脚本的日志。

启用监控所有执行的sql的日志 修改my.ini 该文件默认不是在安装目录 默认路径:C:\ProgramData\MySQL\MySQL Server 5.6 l...
  • lvjin110
  • lvjin110
  • 2014年04月26日 23:06
  • 6828

MySQL之——CentOS下my.cnf 配置 日志类型及文件配置详解(我本人服务器上的配置,亲测可用)

mysql有以下几种日志: 错误日志:    log-err 查询日志:    log 慢查询日志:  log-slow-queries 更新日志:    log-update 二进制日志:...
  • l1028386804
  • l1028386804
  • 2016年03月08日 14:52
  • 7372

MySQL主从复制搭建,基于日志(binlog)

什么是MySQL主从复制简单来说就是保证主SQL(Master)和从SQL(Slave)的数据是一致性的,向Master插入数据后,Slave会自动从Master把修改的数据同步过来(有一定的延迟),...
  • wantnrun
  • wantnrun
  • 2017年04月17日 13:57
  • 802

MySQL日志文件配置

博客原文请访问:http://zhuqiuhui.space/Blogs/2017/03/mysql-log-configuration.html         开发过程中遇到的sql问题,总...
  • zhuqiuhui
  • zhuqiuhui
  • 2017年03月23日 21:38
  • 348
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql 配置和日志
举报原因:
原因补充:

(最多只允许输入30个字)