欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL Aborted connection告警日志的分析

 更新時間:2020年08月28日 10:51:51   作者:MySQL技術(shù)  
這篇文章主要介紹了MySQL Aborted connection告警日志的分析,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下

前言:

有時候,連接MySQL的會話經(jīng)常會異常退出,錯誤日志里會看到"Got an error reading communication packets"類型的告警。本篇文章我們一起來討論下該錯誤可能的原因以及如何來規(guī)避。

1.狀態(tài)變量Aborted_clients和Aborted_connects

首先我們來了解下Aborted_clients和Aborted_connects這兩個狀態(tài)變量的含義,當(dāng)出現(xiàn)會話異常退出時,這兩個狀態(tài)值會有變化。根據(jù)官方文檔描述,總結(jié)如下:

造成Aborted_connects狀態(tài)變量增加的可能原因:

  1. 客戶端試圖訪問數(shù)據(jù)庫,但沒有數(shù)據(jù)庫的權(quán)限。
  2. 客戶端使用了錯誤的密碼。
  3. 連接包不包含正確的信息。
  4. 獲取一個連接包需要的時間超過connect_timeout秒。

造成Aborted_clients狀態(tài)變量增加的可能原因:

  1. 程序退出前,客戶機(jī)程序沒有調(diào)用mysql_close()。
  2. 客戶端睡眠時間超過了wait_timeout或interactive_timeout參數(shù)的秒數(shù)。
  3. 客戶端程序在數(shù)據(jù)傳輸過程中突然終止。

簡單來說即:數(shù)據(jù)庫會話未能正常連接到數(shù)據(jù)庫,會造成Aborted_connects變量增加。數(shù)據(jù)庫會話已正常連接到數(shù)據(jù)庫但未能正常退出,會造成Aborted_clients變量增加。

2.Got an error reading communication packets原因分析

哪種情況會導(dǎo)致error log中出現(xiàn)“Aborted connection xxxx to db: 'db' user: 'dbuser' host: 'hostname' (Got an error reading communication packets)”類似告警呢?下面我們根據(jù)上面可能的原因來做下具體測試。每次測試要注意狀態(tài)變量Aborted_clients和Aborted_connects的變化及錯誤日志記錄。

  • 測試一:錯誤密碼,錯誤用戶
1.測試前查看狀態(tài)變量值mysql> show global status like 'abort%';+------------------+-------+| Variable_name | Value |+------------------+-------+| Aborted_clients | 0  || Aborted_connects | 0  |+------------------+-------+
2.測試過程# mysql -uroot -pwrongpassmysql: [Warning] Using a password on the command line interface can be insecure.ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)# mysql -uroot1 -pwrongpassmysql: [Warning] Using a password on the command line interface can be insecure.ERROR 1045 (28000): Access denied for user 'root1'@'localhost' (using password: YES)
3.查看狀態(tài)變化及錯誤日志mysql> show global status like 'abort%';+------------------+-------+| Variable_name | Value |+------------------+-------+| Aborted_clients | 0  || Aborted_connects | 2  |+------------------+-------+錯誤日志記錄:2020-03-16T17:58:35.318819+08:00 6 [Note] Access denied for user 'root'@'localhost' (using password: YES)2020-03-16T17:59:04.153753+08:00 7 [Note] Access denied for user 'root1'@'localhost' (using password: YES)
結(jié)果:Aborted_connects有增加 error log無Aborted connection相關(guān)記錄
  • 測試二:睡眠時間超時或手動殺會話
1.測試前查看狀態(tài)變量值mysql> show global status like 'abort%';+------------------+-------+| Variable_name | Value |+------------------+-------+| Aborted_clients | 0  || Aborted_connects | 2  |+------------------+-------+
2.手動殺會話測試mysql> show processlist;+----+------+-----------+------+---------+------+----------+------------------+| Id | User | Host  | db | Command | Time | State | Info    |+----+------+-----------+------+---------+------+----------+------------------+| 9 | root | localhost | NULL | Query | 0 | starting | show processlist || 10 | root | localhost | NULL | Sleep | 7 |   | NULL    |+----+------+-----------+------+---------+------+----------+------------------+2 rows in set (0.00 sec)mysql> kill 10;Query OK, 0 rows affected (0.00 sec)
3.查看狀態(tài)變化及錯誤日志mysql> show global status like 'abort%';+------------------+-------+| Variable_name | Value |+------------------+-------+| Aborted_clients | 1  || Aborted_connects | 2  |+------------------+-------+
結(jié)果:Aborted_clients有增加 error log無記錄 ,類似的,睡眠時間超時后Aborted_clients有增加 error log中有Aborted connection相關(guān)記錄。

會話異常退出一般會造成Aborted connection告警,即我們可以通過Aborted_clients狀態(tài)變量的變化來反映出是否存在異常會話,那么出現(xiàn)“Got an error reading communication packets” 類似告警的原因就很明了了,查詢相關(guān)資料,總結(jié)出造成Aborted connection告警的可能原因如下:

  1. 會話鏈接未正常關(guān)閉,程序沒有調(diào)用mysql_close()。
  2. 睡眠時間超過wait_timeout或interactive_timeout參數(shù)的秒數(shù)。
  3. 查詢數(shù)據(jù)包大小超過max_allowed_packet數(shù)值,造成鏈接中斷。
  4. 其他網(wǎng)絡(luò)或者硬件層面的問題。

3.問題避免與總結(jié)

其實(shí)Aborted connection告警是很難避免的,error log里或多或少會有少量Aborted connection信息,這種情況是可以忽略的,但是當(dāng)你的error log里頻繁出現(xiàn)Aborted connection告警,這時候就應(yīng)該注意了,可能會對業(yè)務(wù)產(chǎn)生較大的影響。下面列舉出幾點(diǎn)避免錯誤的建議,希望對你有所幫助。

  1. 建議業(yè)務(wù)操作結(jié)束后,應(yīng)用程序邏輯會正確關(guān)閉連接,以短連接替代長連接。
  2. 檢查以確保max_allowed_packet的值足夠高,并且客戶端沒有收到“數(shù)據(jù)包太大”消息。
  3. 確??蛻舳藨?yīng)用程序不中止連接,例如,如果PHP設(shè)置了max_execution_time為5秒,增加connect_timeout并不會起到作用,因?yàn)镻HP會kill腳本。其他程序語言和環(huán)境也有類似的安全選項(xiàng)。
  4. 確保事務(wù)提交(begin和commit)都正確提交以保證一旦應(yīng)用程序完成以后留下的連接是處于干凈的狀態(tài)。
  5. 檢查是否啟用了skip-name-resolve,檢查主機(jī)根據(jù)其IP地址而不是其主機(jī)名進(jìn)行身份驗(yàn)證。
  6. 嘗試增加MySQL的net_read_timeout和net_write_timeout值,看看是否減少了錯誤的數(shù)量。

以上就是MySQL Aborted connection告警日志的分析的詳細(xì)內(nèi)容,更多關(guān)于MySQL Aborted connection告警日志的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 史上最簡單的MySQL數(shù)據(jù)備份與還原教程(上)(三十五)

    史上最簡單的MySQL數(shù)據(jù)備份與還原教程(上)(三十五)

    這篇文章主要為大家詳細(xì)介紹了史上最簡單的MySQL數(shù)據(jù)備份與還原教程第一篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Navicat for MySQL 15注冊激活詳細(xì)教程

    Navicat for MySQL 15注冊激活詳細(xì)教程

    這篇文章主要介紹了Navicat for MySQL 15注冊激活詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 解決mysql的賦權(quán)操作之GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘123456‘ WITH GRANT OPTION問題

    解決mysql的賦權(quán)操作之GRANT ALL PRIVILEGES ON *.*

    這篇文章主要介紹了解決mysql的賦權(quán)操作之GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘123456‘ WITH GRANT OPTION問題,本文給大家分享兩種情況分析分享解決方案,感興趣的朋友一起看看吧
    2022-11-11
  • MySQL表的增刪改查(CRUD)

    MySQL表的增刪改查(CRUD)

    這篇文章主要介紹了如何對數(shù)據(jù)庫增刪改查,想要更全面了解的小伙伴,可以詳細(xì)閱讀本文
    2023-03-03
  • 5個保護(hù)MySQL數(shù)據(jù)倉庫的小技巧

    5個保護(hù)MySQL數(shù)據(jù)倉庫的小技巧

    這篇文章主要為大家詳細(xì)介紹了五個小技巧,告訴你如何保護(hù)MySQL數(shù)據(jù)倉庫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Mysql select語句設(shè)置默認(rèn)值的方法

    Mysql select語句設(shè)置默認(rèn)值的方法

    這篇文章主要介紹了Mysql select語句設(shè)置默認(rèn)值的方法,需要的朋友可以參考下
    2014-05-05
  • Mysql中key和index的區(qū)別點(diǎn)整理

    Mysql中key和index的區(qū)別點(diǎn)整理

    在本篇文章里小編給大家整理的是關(guān)于Mysql中key和index的區(qū)別點(diǎn)整理,需要的朋友們可以學(xué)習(xí)下。
    2020-03-03
  • 簡單了解添加mysql索引的3條原則

    簡單了解添加mysql索引的3條原則

    這篇文章主要介紹了簡單了解添加mysql索引的3條原則,如果表中查詢的列有一個索引,MySQL能快速到達(dá)一個位置去搜尋到數(shù)據(jù)文件的中間,沒有必要看所有數(shù)據(jù),需要的朋友可以參考下
    2019-06-06
  • MySQL多表聯(lián)合查詢、連接查詢、子查詢的實(shí)現(xiàn)

    MySQL多表聯(lián)合查詢、連接查詢、子查詢的實(shí)現(xiàn)

    本文主要介紹了MySQL多表聯(lián)合查詢、連接查詢、子查詢的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • MySQL批量SQL插入性能優(yōu)化詳解

    MySQL批量SQL插入性能優(yōu)化詳解

    這篇文章主要為大家詳細(xì)介紹了MySQL批量SQL插入性能優(yōu)化,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評論