一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - 全面盤點MySQL中的那些重要日志文件

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

2022-01-11 20:52一只獨立特行的pig Mysql

大家好,本篇文章主要講的是全面盤點MySQL中的那些重要日志文件,感興趣的同學快來看一看吧,對你有用的話記得收藏,方便下次瀏覽

簡介

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

日志分類

mysql中的日志文件,配置文件、錯誤日志文件、二進制文件(binary log)、慢查詢日志(slow-query-log)、全量日志(genera log)、審計日志(audit log)、數據庫文件&數據表文件、存儲引擎文件、中繼日志(relay log)、進程文件(pid)和socket文件。

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

參數文件

參數文件就是mysql中的配置文件,在linux下的my.cnf文件、windows下的my.ini文件。文件內容主要分為server和client兩個模塊。server模塊配置的是有關mysql的服務信息,例如慢查詢日志。client模塊配置的是有關mysql客戶端連接信息,例如客戶端連接的端口號。
文件格式大致如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[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從啟動、運行和關閉幾個環節中的日志信息。例如連接mysql連接失敗、查詢命令錯誤、sql執行流程等等。對于定位mysql錯誤有著很大的幫助。
文件大致內容如下:

?
1
2
3
4
5
6
7
8
9
10
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即可。

?
1
2
3
4
5
6
7
8
9
10
mysql [email protected]:(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操作日志記錄。例如增刪改查等操作都會被記錄下來。

?
1
2
3
4
5
6
7
8
mmysql [email protected]:(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數據中創建一張表(表名叫做general-log)來記錄日志。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 日志記錄文件格式
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   [email protected] 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   [email protected] 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   [email protected] 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%'

慢查詢日志

慢查詢日志是定位sql語句查詢快與慢而記錄的一種日志文件。當某一條sql語句查詢時間超過一個固定的閾值,這條sql語句將被定義為慢查詢的sql語句,被記錄在慢查詢日志文件中。

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

是否開啟慢查詢與慢查詢日志文件。

?
1
2
3
4
5
6
7
8
9
mysql [email protected]:(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

慢查詢時間閾值。

?
1
2
3
4
5
6
7
8
mysql [email protected]:(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語句,記錄了操作之后的物理日志內容,不會記錄mysql中的select、show等語句。二進制日志文件主要的作用如下:

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

用于數據恢復。根據物理日志,找回數據丟失之前的操作日志。

可以通過如下幾個參數進行配置:

?
1
2
3
4
5
6
7
8
9
10
11
mysql [email protected]:(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存儲日志文件索引(日志文件名稱)。如果日志文件沒有指定文件名稱,則默認使用本機名稱。

日志文件列表。

?
1
2
3
4
-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
?
1
2
3
4
5
6
7
# cat mysql-bin.index
./mysql-bin.000001
./mysql-bin.000002
./mysql-bin.000003
./mysql-bin.000004
./mysql-bin.000005
./mysql-bin.000006

審計日志

審計日志用來記錄mysql的網絡活動,對mysql的操作記錄做統計、分析與報告等。屬于對mysql安全監控記錄類的日志文件。

mysql自身不包含該功能的,并且該功能在mysql官網也是收費的。這里也不做具體的演示。

中繼日志

中繼日志是mysql主從復制,在從服務器上的一個重要角色。當主服務器將二進制文件發送給從服務器時,從服務器不會立馬執行,而是放在一個指定的一類日志文件中,從服務器在開啟一個sql線程去讀取中繼日志文件內容并寫入到自身數據中。

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

pid文件

pid是一個mysql實例的進程文件號。mysql屬于單進程服務,在啟動一個mysql實例,就會創建一個pid文件。

socket文件

socket也是mysql通信的一種方式。mysql通信有兩種方式,tcp和socket方式。tcp是走網絡通信,可以將服務部署到任意可以訪問的服務器上。socket是走的文件通信方式,必須在同一臺服務器上。

?
1
2
# tcp模式
mysql -hxxxx -pxxxx -uxxxx -pxxx
?
1
mysql -uxxxx -pxxxx -s /path/socket

數據庫與表

數據庫與表值的就是mysql中的表結構文件、數據文件和索引文件。
innodb存儲引擎的數據表結構

?
1
2
-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存儲引擎的數據表結構

?
1
2
3
-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

存儲引擎文件

不同的存儲引擎,實現起來也不同。innodb存儲引擎分為redolog和undolog兩種日志文件。

到此這篇關于全面盤點mysql中的那些重要日志文件的文章就介紹到這了,更多相關mysql日志文件內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.51cto.com/u_10992108/4680893

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲视频一 | 97秋霞| 亚洲成人黄色 | 成人在线免费观看视频 | 沟厕okn系列在线播放 | 国产亚洲欧美一区二区三区 | 办公室恋情在线 | 美女禁区视频无遮挡免费看 | 日本高清免费不卡在线 | 国产一区二区三区久久小说 | 经典三级四虎在线观看 | 久久国产精品福利影集 | 色一级| 成人啪啪漫画羞羞漫画www网站 | 日本精品久久久久久久久免费 | 亚洲成在人线久久综合 | 天天色天天色天天色 | 三级无删减高清在线影院 | 精品久久香蕉国产线看观看亚洲 | 国产福利一区二区三区 | 美女脱了内裤打开腿让人桶网站o | 美女脱了内裤让男生尿囗 | 果冻传媒林予曦图片 | 亚洲精品福利在线 | 高h短篇辣肉各种姿势bl | 亚洲第一男人天堂 | 91久久国产青草亚洲 | 铁牛tv 在线观看 | 精品亚洲456在线播放 | 日本免费看 | 99综合视频 | 青草青草视频 | 免费午夜影片在线观看影院 | 边摸边吃奶边做爽视频免费 | 俄罗斯图书馆无打码久久 | 欧美一级片免费在线观看 | 互换身体全集免费观看 | 日本精品久久久久久久久免费 | 国内久久精品视频 | 91精品国产高清久久久久久io | 国产裸舞在线一区二区 |