溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL主要有哪幾種日志文件

發(fā)布時(shí)間:2020-05-06 16:09:21 來(lái)源:億速云 閱讀:257 作者:三月 欄目:MySQL數(shù)據(jù)庫(kù)

本文主要給大家簡(jiǎn)單講講MySQL主要有哪幾種日志文件,相關(guān)專業(yè)術(shù)語(yǔ)大家可以上網(wǎng)查查或者找一些相關(guān)書(shū)籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望MySQL主要有哪幾種日志文件這篇文章可以給大家?guī)?lái)一些實(shí)際幫助。 

MySQL主要有以下幾種日志類型:

  • 錯(cuò)誤日志——MySQL服務(wù)啟動(dòng)和關(guān)閉過(guò)程中的信息以及其它錯(cuò)誤和警告信息。默認(rèn)在數(shù)據(jù)目錄下。

  • 一般查詢?nèi)罩尽糜谟涗泂elect查詢語(yǔ)句的日志。general_log、general_log_file 默認(rèn)關(guān)閉,建議關(guān)閉。

  • 慢查詢?nèi)罩尽猯og-slow-queries記錄所有超過(guò)long_query_time時(shí)間的SQL語(yǔ)句,

  • 二進(jìn)制日志——記錄任何引起數(shù)據(jù)變化的操作,用于備份和還原。默認(rèn)存放在數(shù)據(jù)目錄中,在刷新和服務(wù)重啟時(shí)會(huì)滾動(dòng)二進(jìn)制日志。

  • 中繼日志——從主云服務(wù)器的二進(jìn)制文件中復(fù)制的事件,并保存為二進(jìn)制文件,格式和二進(jìn)制日志一樣。

  • 事務(wù)日志——保證事務(wù)的一致性。

MySQL主要有哪幾種日志文件

   1 慢查詢?nèi)罩荆?/p>

mysql> show variables like "long%";    #查看慢查詢?nèi)罩拘畔?/p>

+-----------------+----------+

| Variable_name   | Value    |

+-----------------+----------+

| long_query_time | 3.000000 |

+-----------------+----------+

1 row in set (0.13 sec)


mysql> show variables like "slow%";    #查看慢查詢?nèi)罩驹O(shè)置

+---------------------+-----------------------------+

| Variable_name       | Value                       |

+---------------------+-----------------------------+

| slow_launch_time    | 2                           |

| slow_query_log      | OFF                         |

| slow_query_log_file | /data/mysql/slave2-slow.log |

+---------------------+-----------------------------+

3 rows in set (0.06 sec)


#慢查詢時(shí)間設(shè)置,永久改變需要更改配置文件,超過(guò)5秒的慢查詢會(huì)被記錄到慢查詢?nèi)罩疚募?/p>

mysql> set long_query_time=5;    

Query OK, 0 rows affected (0.25 sec)  


mysql> set global slow_query_log=1;    #開(kāi)啟慢查詢,永久開(kāi)啟需要修改配置文件

mysql> show global status like '%Slow_queries%';    #查看慢查詢?nèi)罩緮?shù)目

mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log    #查看訪問(wèn)最多的10個(gè)SQL

mysqldumpslow  slow-query.log    #對(duì)慢查詢分類匯總


   2 二進(jìn)制日志:                            

mysql> show global variables like "%log%";    #查看日志相關(guān)變量


mysql> show variables like "%log_bin%";    #查看二進(jìn)制變量

+---------------------------------+-------+

| Variable_name                   | Value |

+---------------------------------+-------+

| log_bin                         | OFF   |

| log_bin_basename                |       |

| log_bin_index                   |       |

| log_bin_trust_function_creators | OFF   |

| log_bin_use_v1_row_events       | OFF   |

| sql_log_bin                     | ON    |

+---------------------------------+-------+


[root@slave02 mysql]# vim /etc/my.cnf

log_bin    #去掉注釋,開(kāi)啟二進(jìn)制日志

[root@slave02 mysql]# service mysqld restart


mysql> show binary logs;    #查看所有二進(jìn)制日志文件

+-------------------+-----------+

| Log_name          | File_size |

+-------------------+-----------+

| slave2-bin.000001 |       168 |

| slave2-bin.000002 |       120 |

+-------------------+-----------+


mysql> show master status;    #查看當(dāng)前使用的二進(jìn)制日志

+-------------------+----------+--------------+------------------+-------------------+

| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+-------------------+----------+--------------+------------------+-------------------+

| slave2-bin.000002 |      120 |              |                  |                   |

+-------------------+----------+--------------+------------------+-------------------+

1 row in set (0.03 sec)


mysql> flush logs;    #刷新二進(jìn)制日志

Query OK, 0 rows affected (0.17 sec)


[root@slave02 mysql]# mysqlbinlog mysql-bin.00001;    #顯示二進(jìn)制文件內(nèi)容


    3 日志的刪除——磁盤的容量是有限的,而日志的增長(zhǎng)則是無(wú)限的

方式 1:reset master    刪除所有二進(jìn)制日志

mysql> reset master;

Query OK, 0 rows affected (0.02 sec)

查看刪除后的二進(jìn)制日志

mysql> system ls -ltr www-bin*

-rw-rw----. 1 mysql mysql 120 Apr 29 22:59 www-bin.000001

-rw-rw----. 1 mysql mysql  17 Apr 29 22:59 www-bin.index


方式 2:purge master logs to 'www-bin.000002';    刪除000002之前的日志

查看日志

mysql> system ls -ltr www-bin*

-rw-rw----. 1 mysql mysql 165 Apr 29 23:04 www-bin.000001

-rw-rw----. 1 mysql mysql 165 Apr 29 23:04 www-bin.000002

-rw-rw----. 1 mysql mysql 165 Apr 29 23:04 www-bin.000003

-rw-rw----. 1 mysql mysql 120 Apr 29 23:04 www-bin.000004

-rw-rw----. 1 mysql mysql  68 Apr 29 23:04 www-bin.index

刪除日志

mysql> purge master logs to 'www-bin.000002';

Query OK, 0 rows affected (0.03 sec)

再次查看日志

mysql> system ls -ltr www-bin*

-rw-rw----. 1 mysql mysql 165 Apr 29 23:04 www-bin.000002

-rw-rw----. 1 mysql mysql 165 Apr 29 23:04 www-bin.000003

-rw-rw----. 1 mysql mysql 120 Apr 29 23:04 www-bin.000004

-rw-rw----. 1 mysql mysql  51 Apr 29 23:06 www-bin.index


方式 3:purge master logs before '2017-04-29 23:11:00';    刪除某個(gè)時(shí)間點(diǎn)之前的日志

查看日志

mysql> system ls -ltr www-bin*

-rw-rw----. 1 mysql mysql 165 Apr 29 23:04 www-bin.000002

-rw-rw----. 1 mysql mysql 165 Apr 29 23:04 www-bin.000003

-rw-rw----. 1 mysql mysql 165 Apr 29 23:11 www-bin.000004

-rw-rw----. 1 mysql mysql 120 Apr 29 23:11 www-bin.000005

-rw-rw----. 1 mysql mysql  68 Apr 29 23:11 www-bin.index

刪除日志

mysql> purge master logs before '2017-04-29 23:11:00';

Query OK, 0 rows affected (0.74 sec)

再次查看日志

mysql> system ls -ltr www-bin*

-rw-rw----. 1 mysql mysql 165 Apr 29 23:11 www-bin.000004

-rw-rw----. 1 mysql mysql 120 Apr 29 23:11 www-bin.000005

-rw-rw----. 1 mysql mysql  34 Apr 29 23:13 www-bin.index


方法 4:在配置文件中添加參數(shù):--expire_logs_days=# 參數(shù)的含義是設(shè)置日志過(guò)期的天數(shù)

1)修改配置文件:vim /etc/my.cnf 

expire_logs_days=60    #添加一行

[root@www mysql]# service mysqld restart


2)查看刪除前日志

mysql> system ls -ltr www-bin*

-rw-rw----. 1 mysql mysql 165 Apr 29 23:11 www-bin.000004

-rw-rw----. 1 mysql mysql 120 Apr 29 23:11 www-bin.000005

-rw-rw----. 1 mysql mysql  34 Apr 29 23:13 www-bin.index


3)修改系統(tǒng)時(shí)間

[root@www mysql]# date -s "2017-05-30"


4)刷新日志觸發(fā)日志更新,由于不到60天,因此日志不會(huì)被刪除

mysql> flush logs;

Query OK, 0 rows affected (0.64 sec)


mysql> system ls -ltr www-bin*

-rw-rw----. 1 mysql mysql 165 Apr 29 23:11 www-bin.000004

-rw-rw----. 1 mysql mysql 143 Apr 29 23:25 www-bin.000005

-rw-rw----. 1 mysql mysql 165 May 30 00:02 www-bin.000006

-rw-rw----. 1 mysql mysql 165 May 30 00:02 www-bin.000007

-rw-rw----. 1 mysql mysql 165 May 30 00:03 www-bin.000008

-rw-rw----. 1 mysql mysql 120 May 30 00:03 www-bin.000009

-rw-rw----. 1 mysql mysql 102 May 30 00:03 www-bin.index


5)將系統(tǒng)時(shí)間改為60天后,再次刷新日志觸發(fā)日志文件更新,可以發(fā)現(xiàn)60天前的日志被刪除

[root@www mysql]# date -s "2017-08-30"

mysql> flush logs;

Query OK, 0 rows affected (0.06 sec)


mysql> system ls -ltr www-bin*

-rw-rw----. 1 mysql mysql 165 Aug 30 00:00 www-bin.000010

-rw-rw----. 1 mysql mysql 120 Aug 30 00:00 www-bin.000011

-rw-rw----. 1 mysql mysql  34 Aug 30 00:00 www-bin.index

MySQL主要有哪幾種日志文件就先給大家講到這里,對(duì)于其它相關(guān)問(wèn)題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會(huì)捕捉一些行業(yè)新聞及專業(yè)知識(shí)分享給大家的。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI