mysql优化之日志配置详解

如果你选mysql数据库作为数据持久化的工具,那么就需要一个合理的日志配置,这样有助于排错和数据备份及恢复!

首先我们可以通过下面的MySQL的sql查询正在运行中的日志配置。

刚好我们熟悉一下SHOW VARIABLES LIKE的用法!这个命令是用来查询MySQL运行时配置的语句,LIKE后面的可以接通配符查找!

还有对应的设置语法叫SET GLOBAL,后面我们会用到。

mysql> SHOW VARIABLES LIKE '%log%';
+-----------------------------------------+---------------------------------+
| Variable_name                           | Value                           |
+-----------------------------------------+---------------------------------+
| back_log                                | 50                              |
| binlog_cache_size                       | 32768                           |
| binlog_direct_non_transactional_updates | OFF                             |
| binlog_format                           | STATEMENT                       |
| expire_logs_days                        | 0                               |
| general_log                             | OFF                             |
| general_log_file                        | /var/run/mysqld/mysqld.log      |
| innodb_flush_log_at_trx_commit          | 1                               |
| innodb_locks_unsafe_for_binlog          | OFF                             |
| innodb_log_buffer_size                  | 1048576                         |
| innodb_log_file_size                    | 5242880                         |
| innodb_log_files_in_group               | 2                               |
| innodb_log_group_home_dir               | ./                              |
| innodb_mirrored_log_groups              | 1                               |
| log                                     | OFF                             |
| log_bin                                 | OFF                             |
| log_bin_trust_function_creators         | OFF                             |
| log_bin_trust_routine_creators          | OFF                             |
| log_error                               | /var/log/mysqld.log             |
*| log_output                              | FILE                            |*
| log_queries_not_using_indexes           | OFF                             |
| log_slave_updates                       | OFF                             |
| log_slow_queries                        | OFF                             |
| log_warnings                            | 1                               |
| max_binlog_cache_size                   | 18446744073709547520            |
| max_binlog_size                         | 1073741824                      |
| max_relay_log_size                      | 0                               |
| relay_log                               |                                 |
| relay_log_index                         |                                 |
| relay_log_info_file                     | relay-log.info                  |
| relay_log_purge                         | ON                              |
| relay_log_space_limit                   | 0                               |
| slow_query_log                          | OFF                             |
| slow_query_log_file                     | /var/run/mysqld/mysqld-slow.log |
| sql_log_bin                             | ON                              |
| sql_log_off                             | OFF                             |
| sql_log_update                          | ON                              |
| sync_binlog                             | 0                               |
+-----------------------------------------+---------------------------------+
38 rows in set (0.00 sec)

请注意log_output一行,次配置决定将日志输出到文件还是table中。

我们可以通过SHOW VARIABLES LIKE 'log_output';查询此配置。

I. 通过文件配置

mysql的配置文件位于 /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
# 错误日志
log-error=/var/log/mysql/error_mysql.log
# Slow Query
log-slow-queries=/var/log/mysql/slow_mysql.log
long_query_time=2
# 记录没有使用索引的查询
#log-queries-not-using-indexes

# 常规查询日志,老高主要用于调试PDO参数绑定的查询
general_log=1
general_log_file=/var/log/mysql/general_mysql.log
# < MySql5.1.12
#log = /var/log/mysql/general_mysql.log

[mysqld_safe]
# syslog指将日志记录至系统日志
#syslog
pid-file=/var/run/mysqld/mysqld.pid
log_error=/var/log/mysql/error_mysqld.log

接下来需要重启服务器即可是配置生效!

II. 热配置

有时候可能想在不重启mysql的方式开启日志,怎么办?

当然我们可以通过MySQL的sql查询开启。

以下操作假设你已经以root方式登录进入MySQL交互界面

常规日志

# 查看常规日志配置
SHOW VARIABLES LIKE 'general_log%';
下面我们开启他

# 设置日志文件路径,请先保证路径存在
SET GLOBAL general_log_file='/var/log/mysql/general_mysql.log';
# 开启日志
SET GLOBAL general_log=ON;

# 关闭日志
SET GLOBAL general_log=OFF;
查看常规日志配置

错误日志

聪明的朋友,既然已经知道SET GLOBAL、SHOW VARIABLES LIKE这两个命令,我相信其他的日志配置就难不倒你了。

所以在此老高就不??铝恕?/p>

时间: 2024-07-30 10:18:50

mysql优化之日志配置详解的相关文章

mySQL优化my.ini配置详解说明

mysql 5.5.13 参数说明:  代码如下 复制代码 [client] character-set-server = utf8 port = 3306 socket = /data/mysql/3306/mysql.sock [mysqld] character-set-server = utf8 user = mysql port = 3306 socket = /data/mysql/3306/mysql.sock basedir = /usr/local/webserver/mysq

PHP MySQL的安装与配置详解_Mysql

 一.安装配置PHP 1.下载Php的版本zip包之后,解压缩到指定目录.下载地址:http://www.php.net/downloads.php 2.在Apache的httpd.conf文件中加入以下 #Php模块加载 LoadModule php5_module "D:/Software/GreenSoft/Php/php5.4.6/php5apache2_2.dll" #php.ini路径设置 PHPIniDir "D:/Software/GreenSoft/Php/

log4j日志配置详解

文章出处为 http://george5814.github.io/2016/10/09/log4j-config.html 一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.W

MySQL主主数据同步配置详解

MySQL主主同步和主从同步的原理一样,只是双方都是主从角色. 环境 操作系统版本:CentOS7 64位 MySQL版本:mysql5.6.33 节点1IP:192.168.1.205 主机名:edu-mysql-01 节点2IP:192.168.1.206 主机名:edu-mysql-02 MySQL 主从复制官方文档: http://dev.mysql.com/doc/refman/5.6/en/replication.html 注意: 1> 主从服务器操作系统版本和位数要保持一致 2>

MySQL slow_query_log慢查询日志配置详解

slow_query_log是记录SQL执行超过一定时间的参数. slow query log相关变量 1.命令行参数:     --log-slow-queries     指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log 2.系统变量     log_slow_queries     指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log     slow_query_log     slow quere log的

Mysql 多实例启动配置详解

当开发与生产环境在同一台机器上,或需要在一台机器上部署多套测试环境时,往往需要同时起多个mysqld进程,最近帮测试搭环境的时候就碰到了这样的问题. 还是从安装mysql开始,下载tarball安装, 安装mysql  代码如下 复制代码 groupadd mysql useradd -g mysql mysql cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.5.27/  -DMYSQL_DATADIR=/data/mysql  -DWITH_

Mysql从库read-only配置详解

为了防止用户对从库进行插入,采用read-only参数: 配置: [root@Slave-Mysql data]# grep read-only /etc/my.cnfread-only 试验过程: 主库授权ALL mysql> grant all on *.* to 'imbyrd'@'localhost' identified by 'admin'; 从库测试: [root@Slave-Mysql data]# /usr/local/mysql/bin/mysql -uimbyrd -p'a

MySQL优化器可选开关详解

MySQL 从5.1开始,提供了关于优化器选项的开关选项. 这样,我们可以强制在优化器糊涂的时候,关闭一些我们认为不该做的事情:或者是当我们想查看优化器为什么要这么选择的时候,可以手动关闭或者打开这些选项来进行优化策略的改变. MySQL 5.1 增加以下开关: MySQL 5.5 新增以下开关: MySQL 5.6 增加以下开关: 1. mrr 2. batched_key_access 3. block_nested_loop 4. index_condition_pushdown 5. u

MySQL主从环境搭建配置详解

=Start= 缘由: 工作需要,学习需要. 正文: MySQL的主从架构: 由一个MySQL实例作为主库,接受读写请求,另外一个或多个MySQL实例通过MySQL的复制机制,将主库的数据同步到从库,从库会设置只读,防止主从数据不一致. 主从架构的好处: 如果主服务器出现问题,可以快速切换到从服务器提供服务: 可以在从服务器上执行查询,降低主服务器的压力: 可以在从服务器上执行备份,以避免备份期间影响主服务器的性能. 主从架构的局限: 由于MySQL实现的是异步复制,所以主从服务器之间的数据存在