最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

全面盤點MySQL中的那些重要日志文件

 更新時間:2021年11月26日 15:30:23   作者:一只獨立特行的pig  
大家好,本篇文章主要講的是全面盤點MySQL中的那些重要日志文件,感興趣的同學(xué)快來看一看吧,對你有用的話記得收藏,方便下次瀏覽

簡介

該篇文章對MySQL中的日志進行總結(jié)與簡單介紹,不會涉及的太深。主要的目的是為了對MySQL中的日志文件有一個體系化的了解。

日志分類

MySQL中的日志文件,配置文件、錯誤日志文件、二進制文件(binary log)、慢查詢?nèi)罩?slow-query-log)、全量日志(genera log)、審計日志(audit log)、數(shù)據(jù)庫文件&數(shù)據(jù)表文件、存儲引擎文件、中繼日志(relay log)、進程文件(PID)和Socket文件。

Snipaste_2021-04-20_16-55-53

參數(shù)文件

參數(shù)文件就是MySQL中的配置文件,在Linux下的my.cnf文件、Windows下的my.ini文件。文件內(nèi)容主要分為server和client兩個模塊。server模塊配置的是有關(guān)MySQL的服務(wù)信息,例如慢查詢?nèi)罩?。client模塊配置的是有關(guān)MySQL客戶端連接信息,例如客戶端連接的端口號。
文件格式大致如下:

[client]
port                    = 3306
default-character-set   = utf8mb4

[mysqld]
user                    = mysql
port                    = 3306
sql_mode                = ""
default-storage-engine  = InnoDB
default-authentication-plugin   = mysql_native_password
character-set-server    = utf8mb4
collation-server        = utf8mb4_unicode_ci
init_connect            = 'SET NAMES utf8mb4'
slow_query_log
long_query_time         = 3
slow-query-log-file     = /var/lib/mysql/mysql.slow.log
log-error               = /var/lib/mysql/mysql.error.log
default-time-zone       = '+8:00'

錯誤日志文件

錯誤日志文件記錄了MySQL從啟動、運行和關(guān)閉幾個環(huán)節(jié)中的日志信息。例如連接MySQL連接失敗、查詢命令錯誤、SQL執(zhí)行流程等等。對于定位MySQL錯誤有著很大的幫助。
文件大致內(nèi)容如下:

Version: '5.7.28-log'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)
2021-04-17T21:23:00.865868Z 3 [Note] Aborted connection 3 to db: 'exam_wechat' user: 'root' host: '172.18.0.1' (Got timeout reading communication packets)
2021-04-17T21:23:00.865969Z 2 [Note] Aborted connection 2 to db: 'exam_wechat' user: 'root' host: '172.18.0.1' (Got timeout reading communication packets)
2021-04-19T22:33:24.137143Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 18415ms. The settings might not be optimal. (flushed=0 and evicted=0, during the time.)
2021-04-20T07:03:21.765208Z 79 [Note] Access denied for user 'root'@'172.18.0.1' (using password: NO)
2021-04-20T07:03:23.825044Z 81 [Note] Aborted connection 81 to db: 'unconnected' user: 'root' host: '172.18.0.1' (Got an error reading communication packets)
2021-04-20T07:14:25.033983Z 82 [Note] Access denied for user 'root'@'172.18.0.1' (using password: NO)
2021-04-20T07:14:27.442608Z 84 [Note] Aborted connection 84 to db: 'unconnected' user: 'root' host: '172.18.0.1' (Got an error reading communication packets)
2021-04-20T07:27:13.971644Z 83 [Note] Aborted connection 83 to db: 'unconnected' user: 'root' host: '172.18.0.1' (Got timeout reading communication packets)
2021-04-20T07:41:02.916249Z 85 [Note] Aborted connection 85 to db: 'unconnected' user: 'root' host: '172.18.0.1' (Got timeout reading communication packets)

如何開始錯誤日志。只要在MySQL中的配置文件中配置意向log_error即可。

mysql root@127.0.0.1:(none)> show variables like '%log_error%';
+---------------------+--------------------------------+
| Variable_name       | Value                          |
+---------------------+--------------------------------+
| binlog_error_action | ABORT_SERVER                   |
| log_error           | /var/lib/mysql/mysql.error.log |
| log_error_verbosity | 3                              |
+---------------------+--------------------------------+
3 rows in set
Time: 0.010s

全量日志文件

全量日志文件記錄的是MySQL所有的SQL操作日志記錄。例如增刪改查等操作都會被記錄下來。

mmysql root@127.0.0.1:(none)> show variables like '%general%';
Reconnecting...
+------------------+---------------------------------+
| Variable_name    | Value                           |
+------------------+---------------------------------+
| general_log      | OFF                             |
| general_log_file | /var/lib/mysql/7fdc5f723ff9.log |
+------------------+---------------------------------+

配置項有三種值,table,none和file。配置file則會記錄在日志文件中,配置none則不會記錄,配置table則會在MySQL默認的MySQL數(shù)據(jù)中創(chuàng)建一張表(表名叫做general-log)來記錄日志。

不推薦開啟,記錄的日志文件太多,不僅僅有性能消耗同時也占用太多無效空間。

# 日志記錄文件格式
mysqld, Version: 5.7.28-log (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /var/run/mysqld/mysqld.sock
Time                 Id Command    Argument
2021-04-20T09:16:48.572888Z	   88 Connect	root@172.18.0.1 on  using TCP/IP
2021-04-20T09:16:48.574591Z	   88 Connect	Access denied for user 'root'@'172.18.0.1' (using password: NO)
2021-04-20T09:16:50.325379Z	   89 Connect	root@172.18.0.1 on  using TCP/IP
2021-04-20T09:16:50.329894Z	   89 Query	select connection_id()
2021-04-20T09:16:50.335222Z	   89 Query	SELECT @@VERSION
2021-04-20T09:16:50.339432Z	   90 Connect	root@172.18.0.1 on  using TCP/IP
2021-04-20T09:16:50.339621Z	   89 Query	SELECT @@VERSION_COMMENT
2021-04-20T09:16:50.343525Z	   90 Query	select connection_id()
2021-04-20T09:16:50.347115Z	   90 Query	SHOW DATABASES
2021-04-20T09:16:50.380236Z	   90 Query	select TABLE_NAME, COLUMN_NAME from information_schema.columns
                                    where table_schema = 'None'
                                    order by table_name,ordinal_position
2021-04-20T09:16:50.391019Z	   90 Query	SELECT CONCAT("'", user, "'@'",host,"'") FROM mysql.user
2021-04-20T09:16:50.415062Z	   90 Query	SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
    WHERE ROUTINE_TYPE="FUNCTION" AND ROUTINE_SCHEMA = "None"
2021-04-20T09:16:50.432015Z	   90 Query	SELECT name from mysql.help_topic WHERE name like "SHOW %"
2021-04-20T09:16:52.572608Z	   89 Query	show variables like '%general%'
2021-04-20T09:17:13.532046Z	   89 Query	show variables like '%general%'

慢查詢?nèi)罩?/h2>

慢查詢?nèi)罩臼嵌ㄎ籗QL語句查詢快與慢而記錄的一種日志文件。當某一條SQL語句查詢時間超過一個固定的閾值,這條SQL語句將被定義為慢查詢的SQL語句,被記錄在慢查詢?nèi)罩疚募小?/p>

慢查詢的配置主要有如下三個參數(shù)。

是否開啟慢查詢與慢查詢?nèi)罩疚募?/p>

mysql root@127.0.0.1:(none)> show variables like '%slow%';
+---------------------------+-------------------------------+
| Variable_name             | Value                         |
+---------------------------+-------------------------------+
| slow_query_log            | ON                            |
| slow_query_log_file       | /var/lib/mysql/mysql.slow.log |
+---------------------------+-------------------------------+
5 rows in set
Time: 0.014s

慢查詢時間閾值。

mysql root@127.0.0.1:(none)> show variables like '%long_query_time%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 3.000000 |
+-----------------+----------+
1 row in set
Time: 0.013

二進制日志文件

二進制日志(binary log)文件用于記錄MySQL的DML語句,記錄了操作之后的物理日志內(nèi)容,不會記錄MySQL中的select、show等語句。二進制日志文件主要的作用如下:

用戶主從復(fù)制,主服務(wù)器將二進制文件中的物理日志發(fā)送給從服務(wù)器,從服務(wù)器在將日志寫入到自身。

用于數(shù)據(jù)恢復(fù)。根據(jù)物理日志,找回數(shù)據(jù)丟失之前的操作日志。

可以通過如下幾個參數(shù)進行配置:

mysql root@127.0.0.1:(none)> show variables like '%log_bin%';
Reconnecting...
+---------------------------------+--------------------------------+
| Variable_name                   | Value                          |
+---------------------------------+--------------------------------+
| log_bin                         | ON                             |
| log_bin_basename                | /var/lib/mysql/mysql-bin       |
| log_bin_index                   | /var/lib/mysql/mysql-bin.index |
+---------------------------------+--------------------------------+
6 rows in set
Time: 0.015s

log_bin是否開啟二進制日志文件,log_bin_basename存儲的目錄以及日志文件前綴,log_bin_index存儲日志文件索引(日志文件名稱)。如果日志文件沒有指定文件名稱,則默認使用本機名稱。

日志文件列表。

-rw-r-----   1 mysql root       154 Apr 12 09:31 mysql-bin.000041
-rw-r-----   1 mysql root       154 Apr 12 19:45 mysql-bin.000042
-rw-r-----   1 mysql root   1459325 Apr 17 20:26 mysql-bin.000043
-rw-r-----   1 mysql mysql    24576 Apr 17 22:18 mysql-bin.000044
# cat mysql-bin.index
./mysql-bin.000001
./mysql-bin.000002
./mysql-bin.000003
./mysql-bin.000004
./mysql-bin.000005
./mysql-bin.000006

審計日志

審計日志用來記錄MySQL的網(wǎng)絡(luò)活動,對MySQL的操作記錄做統(tǒng)計、分析與報告等。屬于對MySQL安全監(jiān)控記錄類的日志文件。

MySQL自身不包含該功能的,并且該功能在MySQL官網(wǎng)也是收費的。這里也不做具體的演示。

中繼日志

中繼日志是MySQL主從復(fù)制,在從服務(wù)器上的一個重要角色。當主服務(wù)器將二進制文件發(fā)送給從服務(wù)器時,從服務(wù)器不會立馬執(zhí)行,而是放在一個指定的一類日志文件中,從服務(wù)器在開啟一個SQL線程去讀取中繼日志文件內(nèi)容并寫入到自身數(shù)據(jù)中。

Snipaste_2021-04-20_17-39-50

PID文件

PID是一個MySQL實例的進程文件號。MySQL屬于單進程服務(wù),在啟動一個MySQL實例,就會創(chuàng)建一個PID文件。

Socket文件

Socket也是MySQL通信的一種方式。MySQL通信有兩種方式,TCP和Socket方式。TCP是走網(wǎng)絡(luò)通信,可以將服務(wù)部署到任意可以訪問的服務(wù)器上。Socket是走的文件通信方式,必須在同一臺服務(wù)器上。

# TCP模式
mysql -hxxxx -pxxxx -uxxxx -Pxxx
mysql -uxxxx -pxxxx -s /path/socket

數(shù)據(jù)庫與表

數(shù)據(jù)庫與表值的就是MySQL中的表結(jié)構(gòu)文件、數(shù)據(jù)文件和索引文件。
InnoDB存儲引擎的數(shù)據(jù)表結(jié)構(gòu)

-rw-r-----  1 mysql root   13650 Apr 13 09:46 wechat_user.frm
-rw-r-----  1 mysql mysql  98304 Apr 17 13:43 wechat_user.ibd

MyISAM存儲引擎的數(shù)據(jù)表結(jié)構(gòu)

-rw-r-----  1 mysql mysql      0 Apr 20 17:53 users.MYD
-rw-r-----  1 mysql mysql   1024 Apr 20 17:53 users.MYI
-rw-r-----  1 root  root    8586 Apr 20 17:53 users.frm

存儲引擎文件

不同的存儲引擎,實現(xiàn)起來也不同。InnoDB存儲引擎分為redolog和undolog兩種日志文件。

到此這篇關(guān)于全面盤點MySQL中的那些重要日志文件的文章就介紹到這了,更多相關(guān)mysql日志文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql8.0?my.ini?如何永久修改時區(qū)

    mysql8.0?my.ini?如何永久修改時區(qū)

    這篇文章主要介紹了mysql8.0?my.ini?如何永久修改時區(qū),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • MySQL分庫分表的幾種方式

    MySQL分庫分表的幾種方式

    這篇文章主要介紹了MySQL分庫分表的幾種方式,分庫分表方案是對關(guān)系型數(shù)據(jù)庫數(shù)據(jù)存儲和訪問機制的一種補充,下文更多相關(guān)介紹需要的小伙伴可以參考一下
    2022-04-04
  • mysql的登陸和退出命令格式

    mysql的登陸和退出命令格式

    這篇文章主要介紹了mysql的登陸和退出命令格式,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • MySQL數(shù)據(jù)表索引命名規(guī)范的實現(xiàn)示例

    MySQL數(shù)據(jù)表索引命名規(guī)范的實現(xiàn)示例

    索引是提高查詢性能的重要工具,本文主要介紹了MySQL數(shù)據(jù)表索引命名規(guī)范的實現(xiàn)示例,包括不同類型索引的命名方法,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • win10 mysql導(dǎo)出csv的兩種方式

    win10 mysql導(dǎo)出csv的兩種方式

    win10導(dǎo)出csv有兩種方式,第一種是借助工具,第二種是原始SQL語句導(dǎo)出,這篇文章主要介紹了win10 mysql導(dǎo)出csv的兩種方式,需要的朋友可以參考下
    2019-12-12
  • MySQL中的排序函數(shù)field()實例詳解

    MySQL中的排序函數(shù)field()實例詳解

    這篇文章主要給大家介紹了關(guān)于MySQL中排序函數(shù)field()的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • mysql如何獲取數(shù)據(jù)列值(int和string)最大值

    mysql如何獲取數(shù)據(jù)列值(int和string)最大值

    最近在開發(fā)項目的時候有個需求,我數(shù)據(jù)庫里面存了很多升級包,升級包有列數(shù)據(jù)表示的是升級包的版本號,類型屬于字符串,結(jié)構(gòu)類似于V1.0.2.22這種,然后后臺有個任務(wù)需要獲取最新版本號的那條數(shù)據(jù),本文給大家介紹mysql獲取數(shù)據(jù)列值(int和string)最大值,感興趣的朋友一起看看吧
    2024-01-01
  • mysql高效導(dǎo)數(shù)據(jù)的方法講解

    mysql高效導(dǎo)數(shù)據(jù)的方法講解

    模擬現(xiàn)網(wǎng)測試,需要搭建測試環(huán)境,導(dǎo)入上億級的數(shù)據(jù)到數(shù)據(jù)庫。對于到的問題做些簡單記錄,有需要的朋友可以參考一下
    2013-09-09
  • mysql中EXISTS和IN的使用方法比較

    mysql中EXISTS和IN的使用方法比較

    這篇文章主要給大家介紹了關(guān)于mysql中EXISTS和IN使用方法比較的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • mysql 8.0.17 安裝配置圖文教程

    mysql 8.0.17 安裝配置圖文教程

    這篇文章主要為大家詳細介紹了mysql 8.0.17 安裝配置圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評論

武强县| 天台县| 琼结县| 内黄县| 成安县| 庆云县| 阿荣旗| 潢川县| 天祝| 京山县| 金华市| 威远县| 天镇县| 新巴尔虎左旗| 安仁县| 漯河市| 辉南县| 多伦县| 页游| 兴隆县| 古浪县| 大竹县| 张家港市| 天等县| 济源市| 涟源市| 昌平区| 滕州市| 澎湖县| 资兴市| 伊吾县| 金湖县| 江源县| 通榆县| 鄂托克旗| 高青县| 南部县| 化州市| 青龙| 绥芬河市| 景德镇市|