《MYSQL數(shù)據(jù)庫MYSQL5.7.9開啟慢查詢?nèi)罩镜募记伞芬c:
本文介紹了MYSQL數(shù)據(jù)庫MYSQL5.7.9開啟慢查詢?nèi)罩镜募记桑M麑δ杏谩H绻幸蓡枺梢月?lián)系我們。
用MYSQL 5.7.9 作為ZABBIX 2.4.7 的監(jiān)控數(shù)據(jù)庫. 前段時間開啟了慢查詢?nèi)罩? 后來發(fā)現(xiàn)慢查詢?nèi)罩九蛎浀搅?00MMYSQL入門
查看最后100條 大部分都是 0.1 秒的 后來想改, 以前是動態(tài)設(shè)置的 set global slow_query_log=1; 方式的 .MYSQL入門
然后想直接用配置文件/etc/my.cnf 配慢查詢MYSQL入門
# 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
反復(fù)啟動了好多次 service mysqld restartMYSQL入門
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 狀態(tài) 而其他的 LONG_QUERY_TIME 得到了改變 5秒MYSQL入門
用動態(tài)方式設(shè)置 報錯MYSQL入門
mysql> set global slow_query_log=1; ERROR 29 (HY000): File '/MYSQLDATA/mysql_slow_query.log' not found (Errcode: 13 - Permission denied)
對我已經(jīng)把它給刪了, 為傻不自己創(chuàng)建個?MYSQL入門
只好自己touch 一個MYSQL入門
還是報錯 ?MYSQL入門
ps -ef |grep mysqld 發(fā)現(xiàn) 還有個mysql用戶啟動了mysqlMYSQL入門
看來 是用mysql用戶讀取慢查詢?nèi)罩镜?用戶權(quán)限問題啦MYSQL入門
下面給大家介紹開啟mysql慢查詢?nèi)罩?/strong>MYSQL入門
查看配置:
MYSQL入門
//查詢慢查詢時間 show variables like "long_query_time";默認10s //查看慢查詢配置情況 show status like "%slow_queries%"; //查看慢查詢?nèi)罩韭窂? show variables like "%slow%";
修改配置文件
MYSQL入門
在my.ini中加上下面兩句話MYSQL入門
log-slow-queries = D:\wamp\mysql_slow_query.log long_query_time=5
第一句使用來定義慢查詢?nèi)罩镜穆窂?因為是windows,所以不牽涉權(quán)限問題)MYSQL入門
第二句使用來定義查過多少秒的查詢算是慢查詢,我這里定義的是5秒MYSQL入門
第二步:查看關(guān)于慢查詢的狀態(tài)MYSQL入門
執(zhí)行如下SQL語句來查看mysql慢查詢的狀態(tài)MYSQL入門
執(zhí)行結(jié)果會把是否開啟慢查詢、慢查詢的秒數(shù)、慢查詢?nèi)罩镜刃畔⒋蛴≡谄聊簧?MYSQL入門
第三步:執(zhí)行一次慢查詢操作MYSQL入門
其實想要執(zhí)行一次有實際意義的慢查詢比較困難,因為在自己測試的時候,就算查詢有20萬條數(shù)據(jù)的海量表,也只需要0.幾秒.我們可以通過如下語句代替:MYSQL入門
第四步:查看慢查詢的數(shù)量MYSQL入門
通過如下sql語句,來查看一共執(zhí)行過幾次慢查詢:MYSQL入門
show global status like '%slow%';
MYSQL入門
mysql日志的配置:
MYSQL入門
注意:這些日文件在mysql重啟的時候才會生成#記錄所有sql語句MYSQL入門
log=E:/mysqllog/mysql.log #記錄數(shù)據(jù)庫啟動關(guān)閉信息,以及運行過程中產(chǎn)生的錯誤信息 log-error=E:/mysqllog/myerror.log # 記錄除select語句之外的所有sql語句到日志中,可以用來恢復(fù)數(shù)據(jù)文件 log-bin=E:/mysqllog/bin #記錄查詢慢的sql語句 log-slow-queries=E:/mysqllog/slow.log #慢查詢時間 long_query_time=0.5
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/3426.html