MySQL有幾種日志

這篇文章將為大家詳細(xì)講解有關(guān)MySQL有幾種日志,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

十多年建站經(jīng)驗(yàn), 成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站客戶的見證與正確選擇。創(chuàng)新互聯(lián)公司提供完善的營(yíng)銷型網(wǎng)頁(yè)建站明細(xì)報(bào)價(jià)表。后期開發(fā)更加便捷高效,我們致力于追求更美、更快、更規(guī)范。

MySQL主要的日志文件有以下幾種。

錯(cuò)誤日志
記錄 MySQL 啟動(dòng)、運(yùn)行和關(guān)閉時(shí)遇到的問題。
可以在 mysqld 后面加上參數(shù) --log-error[=file_name]來(lái)指定路徑,也可以在配置文件中增加log-error[=file_name]來(lái)指定路徑。

一般查詢?nèi)罩?/strong>
記錄客戶端連接和從客戶端接收的SQL語(yǔ)句,當(dāng)檢查客戶端錯(cuò)誤的時(shí)候,這個(gè)日志非常有用。查詢?nèi)罩灸J(rèn)是關(guān)閉的??梢詫⒉樵?nèi)罩居涗浀綌?shù)據(jù)庫(kù)的表中,也可以將其記錄到日志文件中,
使用 --log-output=TABLE,FILE 這個(gè)參數(shù)。使用 --general_log[={0|1}] 來(lái)激活或關(guān)閉查詢?nèi)罩???梢酝ㄟ^ --general_log_file=file_name 指定日志的名稱。

二進(jìn)制日志
記錄數(shù)據(jù)庫(kù)的改變,例如表的創(chuàng)建,表中數(shù)據(jù)的變化或刪除。這個(gè)日志有兩種主要的用途:
(1) 在復(fù)制的時(shí)候,主節(jié)點(diǎn)將二進(jìn)制日志傳送給備節(jié)點(diǎn),以供備節(jié)點(diǎn)應(yīng)用。
(2) 某些數(shù)據(jù)恢復(fù)的時(shí)候需要使用二進(jìn)制日志。
二進(jìn)制日志不記錄 SELECT 或 SHOW 這些不涉及數(shù)據(jù)改變的語(yǔ)句。如果想記錄所有的 SQL 語(yǔ)句,可以使用查詢?nèi)罩?。要打開二進(jìn)制日志,可以在啟動(dòng)服務(wù)的時(shí)候加上 --log-bin[=base_name] 參數(shù)。

慢查詢?nèi)罩?/strong>
記錄執(zhí)行時(shí)間超過 long_query_time 閥值的查詢。還要配合另外一個(gè)參數(shù)——min_examined_row_limit,這個(gè)參數(shù)的含義是少于這個(gè)行數(shù)的查詢將不會(huì)記錄到緩慢查詢?nèi)罩?。long_query_time 的單位是微秒。
默認(rèn),管理語(yǔ)句和沒有使用索引的查詢不會(huì)被記錄。要打開慢查詢?nèi)罩荆梢栽趩?dòng)服務(wù)的時(shí)候加上 --slow_query_log[={0|1}]參數(shù),1代表打開日志,0代表關(guān)閉日志。
可以通過--slow_query_log_file=file_name參數(shù)來(lái)指定慢查詢?nèi)罩镜拿Q??梢酝ㄟ^--log-output指定慢查詢?nèi)罩镜穆窂?。如果你不指定慢查詢?nèi)罩镜拿Q,則 mysql 會(huì)將慢查詢?nèi)罩镜拿Q指定為 host_name-slow.log。

log_queries_not_using_indexes決定不使用索引的查詢是否被記錄到慢查詢?nèi)罩?br/>mysql> show variables like 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name                 | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF   |
+-------------------------------+-------+
1 row in set (0.00 sec)

DDL日志
記錄DDL操作時(shí)的元數(shù)據(jù),如DROP TABLE、ALTER TABLE語(yǔ)句。MySQL使用DDL日志來(lái)恢復(fù)中斷的元數(shù)據(jù)操作。DDL日志存放在數(shù)據(jù)目錄中,文件名為ddl_log.log,它是一個(gè)二進(jìn)制日志,不要人為地編輯這個(gè)日志。
在使用日志時(shí),可用FLUSH LOGS語(yǔ)句來(lái)刷新和重新開始所有日志文件;刷新前備份對(duì)應(yīng)的日志。

shell> mv host_name.log host_name-old.log
shell> mysqladmin flush-logs
shell> mv host_name-old.log backup-directory


日志的設(shè)置方法

[root@T400-kelong log]# vim /etc/my.cnf
..
#error log
log-error=/log/err.log
#general query log
log-output=FILE
general_log=1
general_log_file=/log/general_query.log
#bin log
server_id=100
log-bin=/log/product-bin
#slow query log
slow_query_log=1
slow_query_log_file=/log/slow_query.log

設(shè)置參數(shù)文件后,啟動(dòng)數(shù)據(jù)庫(kù)

在數(shù)據(jù)庫(kù)里面查看設(shè)置的參數(shù)文件
mysql> show variables like '%query_log%';
+------------------------------+---------------------+
| Variable_name                | Value               |
+------------------------------+---------------------+
| binlog_rows_query_log_events | OFF                 |
| slow_query_log               | ON                  |
| slow_query_log_file          | /log/slow_query.log |
+------------------------------+---------------------+
3 rows in set (0.00 sec)

mysql> show variables like '%general_log%';
+------------------+------------------------+
| Variable_name    | Value                  |
+------------------+------------------------+
| general_log      | ON                     |
| general_log_file | /log/general_query.log |
+------------------+------------------------+
2 rows in set (0.00 sec)

mysql> show variables like '%log_bin%';
+---------------------------------+------------------------+
| Variable_name                   | Value                  |
+---------------------------------+------------------------+
| log_bin                         | ON                     |
| log_bin_basename                | /log/product-bin       |
| log_bin_index                   | /log/product-bin.index |
| log_bin_trust_function_creators | OFF                    |
| log_bin_use_v1_row_events       | OFF                    |
| sql_log_bin                     | ON                     |
+---------------------------------+------------------------+
6 rows in set (0.00 sec)


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

查看生成的日志文件
[root@T400-kelong log]# ls
err.log  general_query.log  product-bin.000001  product-bin.000002  product-bin.index  slow_query.log

關(guān)于“MySQL有幾種日志”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

分享名稱:MySQL有幾種日志
當(dāng)前鏈接:http://bm7419.com/article34/jdcspe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)用戶體驗(yàn)、虛擬主機(jī)、面包屑導(dǎo)航、外貿(mào)建站、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)