1. 程式人生 > >檢視MySQL4種日誌引數及配置

檢視MySQL4種日誌引數及配置

1 檢視版本
mysql> show variables like '%version';
+------------------+---------------+
| Variable_name    | Value         |
+------------------+---------------+
| innodb_version   | 5.7.20        |
| protocol_version | 10            |
| tls_version      | TLSv1,TLSv1.1 |
| version          | 5.7.20-log    |
+------------------+---------------+




2 MySQL通用日誌
2.1 臨時配置
檢視引數
mysql> show variables like '%general%';
+------------------+-----------------------------------+
| Variable_name    | Value                             |
+------------------+-----------------------------------+
| general_log      | ON                                |
| general_log_file | /apps/mysql/log/mysql_general.log |
+------------------+-----------------------------------+
2 rows in set (0.05 sec)


設定
開啟通用日誌查詢:set global general_log = on;
關閉通用日誌查詢:set global general_log = off;




日誌格式:
[
[email protected]
log]# tail -10 mysql_general.log 
2017-12-05T11:50:41.252042Z         4 Query     show variables like '%version'
2017-12-05T11:51:44.149565Z         4 Query     help 'show'
2017-12-05T11:51:58.302866Z         4 Query     help 'show variables'
2017-12-05T11:53:03.843965Z         4 Query     show variables like '%general'
2017-12-05T11:53:09.659452Z         4 Query     show variables like '%general%'
2017-12-05T11:54:35.341783Z         4 Query     set global general_log=off




2.2 配置
永久配置
vi /etc/my.cnf
general_log = ON
general_log_file=/apps/mysql/log/mysql_general.log






3 檢視當前慢檔案的格式
mysql> show variables like '%log_output%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output    | FILE  |
+---------------+-------+
1 row in set (0.00 sec)
當前慢檔案格式為file ,儲存在資料庫的資料檔案中的hostname.log
可以是table格式,儲存在資料庫的資料檔案中的mysql.general_log
設定通用日誌輸出為表方式:
set global log_output = 'file';
設定通用日誌輸出為表和檔案方式:
set global log_output = 'file,table';


4 慢查詢日誌:
記錄所有執行時間超過long_query_time秒的所有查詢或者不適用索引的查詢
預設情況下,MySQL不開啟慢查詢日誌,long_query_time的預設值為10,即執行時間超過10s的語句是慢查詢語句。
一般來說,慢查詢發生在大表中,且查詢的欄位沒有建立索引,此時,要匹配查詢的欄位會對全表進行掃描,耗時查long_query_time表


4.1 檢視狀態
mysql> show variables like '%query%';
+------------------------------+--------------------------+
| Variable_name                | Value                    |
+------------------------------+--------------------------+
| binlog_rows_query_log_events | OFF                      |
| ft_query_expansion_limit     | 20                       |
| have_query_cache             | YES                      |
| long_query_time              | 10.000000                |
| query_alloc_block_size       | 8192                     |
| query_cache_limit            | 1048576                  |
| query_cache_min_res_unit     | 4096                     |
| query_cache_size             | 1048576                  |
| query_cache_type             | OFF                      |
| query_cache_wlock_invalidate | OFF                      |
| query_prealloc_size          | 8192                     |
| slow_query_log               | ON                       |
| slow_query_log_file          | /apps/mysql/log/slow.log |
+------------------------------+--------------------------+
13 rows in set (0.01 sec)


其中:
1)slow_query_log 的值為ON 為開啟慢查詢日誌,off表示關閉慢查詢日誌
2) slow_query_log_file 的值是記錄的慢查詢日誌到檔案中(預設為主機 名.log)
3)long_query_time 指定了慢查詢的閾值,即執行語句的時間若超過這個值則為慢查詢語句
4)log_queries_not_using_indexes 如果該值是ON,則會記錄所有沒有利用索引來進行查詢的語句,前提是slow_query_log 的值也是ON,否則,不會




查詢當前慢查詢的語句個數:
show global status like '%slow%';
可以通過查詢語句檢視慢查詢的語句:
select * from mysql.slow_log;


永久配置:
long_query_time=10
slow_query_log_file = /apps/mysql/log/slow.log
expire_logs_days = 5


日誌格式;
# U
[email protected]
: myh2017[myh2017] @  [10.26.43.80]
# Query_time: 7.893942  Lock_time: 0.000066 Rows_sent: 15  Rows_examined: 4583043
SET timestamp=1512530520;
SELECT 
                                           l.cid,
                                           l.wid,
                                           b.brand,
                                           w.wechat,
                                           w.server_name,
                                           SUM(if(l.act_type=1,1,0)) AS t1,
                                           SUM(if(l.act_type=2,1,0)) AS t2,
                                           SUM(if(l.act_type=3,1,0)) AS t3,
                                           SUM(if(l.act_type=4,1,0)) AS t4,
                                           SUM(if(l.act_type=5,1,0)) AS tt5,
                                           SUM(if(l.act_type=6,1,0)) AS tt6,
                                           SUM(if(l.act_type=7,1,0)) AS t7
                                FROM cps_data_log l
                                LEFT JOIN cps_wechat w ON w.id=l.wid
                                LEFT JOIN cps_brand b ON b.id=w.brand
                                WHERE  l.wid>0  AND b.id='15' AND l.cid in('671','672') AND l.add_time>='1512518401' AND l.add_time<='1512572459'
                                GROUP BY l.wid,l.cid
                                LIMIT 0 , 15;




5 錯誤日誌
MySQL錯誤日誌世紀路MySQL執行過程中較為嚴重的警告和錯誤資訊,以及MySQL每次啟動和關閉的詳細資訊。錯誤日誌的命名通常為伺服器主機名.err


mysql> show variables like '%err%';
+---------------------+--------------+
| Variable_name       | Value        |
+---------------------+--------------+
| binlog_error_action | ABORT_SERVER |
| error_count         | 0            |
| log_error           | ./error.log  |
| log_error_verbosity | 3            |
| max_connect_errors  | 100          |
| max_error_count     | 64           |
| slave_skip_errors   | OFF          |
+---------------------+--------------+
7 rows in set (0.00 sec)


日誌格式:
2017-12-05T11:44:31.633593Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
2017-12-05T11:44:31.636804Z 0 [Note] InnoDB: Waiting for purge to start
2017-12-05T11:44:31.691053Z 0 [Note] InnoDB: 5.7.20 started; log sequence number 2565654
2017-12-05T11:44:31.692462Z 0 [Note] InnoDB: Loading buffer pool(s) from /apps/mysql-5.7.20/data/ib_buffer_pool
2017-12-05T11:44:31.693457Z 0 [Note] Plugin 'FEDERATED' is disabled.
2017-12-05T11:44:31.695431Z 0 [Note] InnoDB: Buffer pool(s) load completed at 171205 19:44:31
2017-12-05T11:44:31.716218Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
2017-12-05T11:44:31.716275Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
2017-12-05T11:44:31.716398Z 0 [Note] IPv6 is available.
2017-12-05T11:44:31.716421Z 0 [Note]   - '::' resolves to '::';
2017-12-05T11:44:31.716448Z 0 [Note] Server socket created on IP: '::'.
2017-12-05T11:44:31.734030Z 0 [Note] Event Scheduler: Loaded 0 events
2017-12-05T11:44:31.734671Z 0 [Note] /apps/mysql/bin/mysqld: ready for connections.
Version: '5.7.20-log'  socket: '/apps/mysql/tmp/mysql.sock'  port: 3306  Source distribution
2017-12-05T11:44:31.734706Z 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check. 
2017-12-05T11:44:31.734713Z 0 [Note] Beginning of list of non-natively partitioned tables
2017-12-05T11:44:31.754505Z 0 [Note] End of list of non-natively partitioned tables




6 二進位制日誌檔案
目的:
包含了所有更新了的資料或者潛在更新了的資料,包含關於每個更新資料庫的語句的執行時間資訊
儘可能將資料庫恢復到是巨酷故障點,因為二進位制日誌包含備份後進行的所有更新,用於在主複製伺服器上記錄所有將發生送給從伺服器的語句


檢視是否啟用二進位制日誌:
mysql> show variables like '%log_bin%';
+---------------------------------+----------------------------------+
| Variable_name                   | Value                            |
+---------------------------------+----------------------------------+
| log_bin                         | ON                               |
| log_bin_basename                | /apps/mysql/data/mysql-bin       |
| log_bin_index                   | /apps/mysql/data/mysql-bin.index |
| log_bin_trust_function_creators | OFF                              |
| log_bin_use_v1_row_events       | OFF                              |
| sql_log_bin                     | ON                               |
+---------------------------------+----------------------------------+
6 rows in set (0.01 sec)
檢視所有的二進位制引數
mysql> show variables like '%binlog%';
+-----------------------------------------+----------------------+
| Variable_name                           | Value                |
+-----------------------------------------+----------------------+
| binlog_cache_size                       | 32768                |
| binlog_checksum                         | CRC32                |
| binlog_direct_non_transactional_updates | OFF                  |
| binlog_error_action                     | ABORT_SERVER         |
| binlog_format                           | ROW                  |
| binlog_group_commit_sync_delay          | 0                    |
| binlog_group_commit_sync_no_delay_count | 0                    |
| binlog_gtid_simple_recovery             | ON                   |
| binlog_max_flush_queue_time             | 0                    |
| binlog_order_commits                    | ON                   |
| binlog_row_image                        | FULL                 |
| binlog_rows_query_log_events            | OFF                  |
| binlog_stmt_cache_size                  | 32768                |
| innodb_api_enable_binlog                | OFF                  |
| innodb_locks_unsafe_for_binlog          | OFF                  |
| log_statements_unsafe_for_binlog        | ON                   |
| max_binlog_cache_size                   | 18446744073709547520 |
| max_binlog_size                         | 1073741824           |
| max_binlog_stmt_cache_size              | 18446744073709547520 |
| sync_binlog                             | 1                    |
+-----------------------------------------+----------------------+
20 rows in set (0.01 sec)


檢視檔案的位置
mysql> show variables like '%datadir%';
+---------------+-------------------+
| Variable_name | Value             |
+---------------+-------------------+
| datadir       | /apps/mysql/data/ |
+---------------+-------------------+
1 row in set (0.01 sec)




日誌格式:
[
[email protected]
data]# mysqlbinlog mysql-bin.000002
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @[email protected]@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#171205 19:43:01 server id 10  end_log_pos 123 CRC32 0x147eacd6         Start: binlog v 4, server v 5.7.20-log created 171205 19:43:01 at startup
ROLLBACK/*!*/;
BINLOG '
RYYmWg8KAAAAdwAAAHsAAAAAAAQANS43LjIwLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABFhiZaEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AdasfhQ=
'/*!*/;
# at 123
#171205 19:43:01 server id 10  end_log_pos 154 CRC32 0xb947e916         Previous-GTIDs
# [empty]
# at 154
#171205 19:44:26 server id 10  end_log_pos 177 CRC32 0xec8a765c         Stop
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET [email protected]_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

相關推薦

檢視MySQL4日誌引數配置

1 檢視版本 mysql> show variables like '%version'; +------------------+---------------+ | Variable_name    | Value         | +-------------

MySQL binlog日誌模式選擇配置

ble 文件 eve 圖解 nag 一行 人的 三種模式 jpg 在講解binlog日誌三種模式前,先了解一下解析binlog日誌的命令工mysqlbinlog。mysqlbinlog工具的作用是解析mysql的二進制binlog日誌內容,把二進制日誌解析成可以在MySQL

HAProxy 日誌輸出配置

正所謂,沒有軟體敢說沒有bug,人無完人,software is  not perfect software。是軟體就可能存在bug,那麼如果出現bug,我們就要分析對我們業務的影響及可能如何避免bug的再現。 HAProxy也不例外,也可能在特殊場景下出現bug,因此我們就有必要記錄下必要的日誌

nginx伺服器access_log日誌分析配置詳解

nginx的log日誌分為access log 和 error log 其中access log 記錄了哪些使用者,哪些頁面以及使用者瀏覽器、ip和其他的訪問資訊 error log 則是記錄伺服器錯誤日誌 錯誤日誌的形式如下: 201.158.69.116 -

Flume相關命令,躍點,引數配置檔案總結

flume----------------    收集、移動、聚合大量日誌資料的服務。    基於流資料的架構,用於線上日誌分析。    基於事件。    在生產和消費者之間啟動協調作用。    提供了事務保證,確保訊息一定被分發。    Source 多種    sink多

Nginx總結(七)Nginx伺服器的日誌管理配置

前面講了如何配置Nginx虛擬主機,大家可以去這裡看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html 今天要說的是如何配置Nginx的日誌。   日誌格式 我們觀察Nginx配置檔案的server段,可以看到

phpunit 生成三日誌文件的配置方法

complete spa php style highlight bin 方法 cnblogs nco #目錄結構 windows bin目錄下 ├── phpunit.phar ├── phpunit.cmd ├──

日誌組件slf4j介紹配置詳解

utf 字段 als itl -- owa 輸出結果 apt 查找 1 基本介紹 每一個Java程序員都知道日誌對於任何一個Java應用程序尤其是服務端程序是至關重要的,而很多程序員也已經熟悉各種不同的日誌庫,如java.util.logging、Apache log4j、

在CentOS7.4中安裝jdk的幾方法配置環境變量

HR 環境 -o OS 安裝jdk 加載類 軟件包 上傳 jre_home 一、下載jdk jdk下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

keepalived 高可用日誌說明實戰配置日誌路徑

local sysconfig water size 實戰 syslog 查看 onf 說明 日誌文件查看tail -f /var/log/message修改日誌路徑vi /etc/sysconfig/keepalived KEEPALIVED_OPTIONS="

Binlog日誌的三模式介紹模式修改

Binlog日誌的三種模式介紹   一、Binlog日誌的三種模式   1.1 Statement Level模式   每一條修改資料的sql都會記錄到master的bin_log中,slave在複製的時候sql程序會解析成master

Tomcat 7 相關引數優化說明配置最佳案例

目錄 前言 環境搭建 目的 伺服器資源 優化配置 禁用AJP聯結器 前言 基於Tomcat 7,通過調其內部引數,提高tomcat效能。 0、環境搭建 參考:在一臺伺服器上配置多個Tomcat 教程  https://b

日誌管理網路配置

一:系統的日誌管理 系統日誌是記錄系統中硬體,軟體和系統問題的資訊,同時還可以監視系統中發生的事件。使用者可以通過它來檢查錯誤發生的原因,或者尋找受到攻擊時攻擊者留下的痕跡。系統日誌包括系統日誌,應用程式日誌和安全日誌。 1.rsyslog的管理 /var/log/messages ##

tomcat logs目錄下 日誌檔案含義配置位置

    含義:Web伺服器訪問日誌配置位置:server.xml     含義:tomcat的標準輸出(stdout)和標準出錯(stderr),應用裡使用System.out列印的東西都會到這裡來,日誌框架,配置了向Console輸出的,則也會在這裡出現

ELKStack分散式日誌查詢分析伺服器安裝配置(ElasticSearch、Logstash、Kibana、Redis)

ELK對於沒有接觸的來說,並沒有一般的服務那麼容易安裝和使用,不過也沒有那麼難,elk一般作為日誌分析套裝工具使用。logs由logstash輸 入,logstash通過配置檔案對日誌做過濾、匹配,就是用來分析日誌的,輸出到elasticsearch,所以他的配置需要和日誌相匹配。 elas

檢視YARN任務日誌的幾方式

1、通過history server 通過history server,直接在web ui上檢視(如果任務異常退出,可能會看不到) All Applications application application log 2、通過yarn命令(使用者要和提交任務

flume 1.6 安裝配置 日誌採集配置

1.下載flume1.6 2.安裝jdk和Hadoop 具體參照以前wen'文章 3.flume 配置檔案修改 修改conf目錄下的flume-env.sh檔案   export JA

Java日誌框架-logback的介紹配置使用方法(純Java工程)

說明:內容估計有些舊,2011年的,但是大體意思應該沒多大變化,最新的配置可以參考官方文件。 一、logback的介紹 Logback是由log4j創始人設計的又一個開源日誌元件。logback當前分成三個模組:logback-core,logback- classic和

Log4j rootLogger根配置以及4日誌級別

萌新人魚的網址:https://www.cnblogs.com/mengxinrenyu/p/7636400.html Log4j rootLogger根配置以及4種日誌級別 Log4j 根配置語法 log4j.rootLogger = [ level ] , appenderN

Springmvc中檢視向控制器傳輸引數的一方法

以前在專案中檢視向控制器傳輸引數的方式一般是通過ajax傳輸,然後在控制器中一個個的獲取所傳輸的引數如 String userId=request.getParameter("userId"); 今天用到一種不一樣的,不一樣之處,如果要獲取一個物件引數 public cla