程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MYSQL5.7.9開啟慢查詢日記的技能

MYSQL5.7.9開啟慢查詢日記的技能

編輯:MySQL綜合教程

MYSQL5.7.9開啟慢查詢日記的技能。本站提示廣大學習愛好者:(MYSQL5.7.9開啟慢查詢日記的技能)文章只能為提供參考,不一定能成為您想要的結果。以下是MYSQL5.7.9開啟慢查詢日記的技能正文


用MYSQL 5.7.9 作為ZABBIX 2.4.7 的監控數據庫. 前段時光開啟了慢查詢日記, 後來發明慢查詢日記收縮到了700M

檢查最初100條 年夜部門都是 0.1 秒的 後來想改, 之前是靜態設置的 set global slow_query_log=1; 方法的 .

然後想直接用設置裝備擺設文件/etc/my.cnf 配慢查詢

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at % of total RAM for dedicated server, else %.
innodb_buffer_pool_size = M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = /LANMP/mysql
datadir = /MYSQLDATA/data
port = 
# server_id = .....
socket = /tmp/mysql.sock
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = M
sort_buffer_size = M
read_rnd_buffer_size = M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character_set_server=utf
init_connect='SET NAMES utf'
slow_query_log = 
slow_query_log_file = /MYSQLDATA/mysql_slow_query.log
long_query_time = 
log_queries_not_using_indexes = ON

重復啟動了很多多少次 service mysqld restart

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 | 5.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 | /MYSQLDATA/mysql_slow_query.log |
+------------------------------+---------------------------------+
13 rows in set (0.00 sec)

總是OFF 狀況 而其他的 LONG_QUERY_TIME 獲得了轉變 5秒

用靜態方法設置 報錯

mysql> set global slow_query_log=1;
ERROR 29 (HY000): File '/MYSQLDATA/mysql_slow_query.log' not found (Errcode: 13 - Permission denied)

對我曾經把它給刪了, 為傻不本身創立個?

只好本身touch 一個

照樣報錯 ?

ps -ef |grep mysqld 發明 還有個mysql用戶啟動了mysql

看來 是用mysql用戶讀取慢查詢日記的 用戶權限成績啦

上面給年夜家引見開啟mysql慢查詢日記

檢查設置裝備擺設:

//查詢慢查詢時光
show variables like "long_query_time";默許10s 
//檢查慢查詢設置裝備擺設情形
show status like "%slow_queries%"; 
//檢查慢查詢日記途徑
show variables like "%slow%"; 

修正設置裝備擺設文件

在my.ini中加高低面兩句話

log-slow-queries = D:\wamp\mysql_slow_query.log
long_query_time=5

第一句應用來界說慢查詢日記的途徑(由於是windows,所以不牽扯權限成績)

第二句應用來界說查過量少秒的查詢算是慢查詢,我這裡界說的是5秒

第二步:檢查關於慢查詢的狀況

履行以下SQL語句來檢查mysql慢查詢的狀況


show variables like '%slow%';

履行成果會把能否開啟慢查詢、慢查詢的秒數、慢查詢日記等信息打印在屏幕上。

第三步:履行一次慢查詢操作

其實想要履行一次有現實意義的慢查詢比擬艱苦,由於在本身測試的時刻,就算查詢有20萬條數據的海量表,也只須要0.幾秒。我們可以經由過程以下語句取代:


SELECT SLEEP(10);

第四步:檢查慢查詢的數目

經由過程以下sql語句,來檢查一共履行過幾回慢查詢:

show global status like '%slow%';

mysql日記的設置裝備擺設:

留意:這些日文件在mysql重啟的時刻才會生成#記載一切sql語句

log=E:/mysqllog/mysql.log
#記載數據庫啟動封閉信息,和運轉進程中發生的毛病信息
log-error=E:/mysqllog/myerror.log
# 記載除select語句以外的一切sql語句到日記中,可以用來恢單數據文件
log-bin=E:/mysqllog/bin
#記載查詢慢的sql語句
log-slow-queries=E:/mysqllog/slow.log 
#慢查詢時光
long_query_time=0.5
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved