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

通過案例分析MySQL中令人頭疼的Aborted告警

 更新時間:2017年06月29日 09:39:23   作者:dbapower  
這篇文章通過案例跟大家分析了MySQL中令人頭疼的Aborted告警的相關(guān)資料,文中將Aborted告警介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。

本文主要給大家介紹的是關(guān)于MySQL中Aborted告警的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面來一起看看詳細(xì)的介紹:

實戰(zhàn)

Part1:寫在最前

在MySQL的error log中,我們會經(jīng)常性看到一些各類的Aborted connection錯誤,本文中會針對這類錯誤進(jìn)行一個初步分析,并了解一個問題產(chǎn)生后的基本排查思路和方法。掌握這種方法是至關(guān)重要的,而不是出現(xiàn)問題了,去猜,去試。數(shù)據(jù)庫出現(xiàn)問題的時候需要DBA在短時間內(nèi)快速解決問題,因此一個好與壞的DBA,區(qū)別也在于此。

Part2:種類

[Warning] Aborted connection 305628 to db: 'db' user: 'dbuser' host: 'hostname' (Got an error reading communication packets)
[Warning] Aborted connection 81 to db:'unconnected' user: 'root' host: '127.0.0.1' (Got timeout reading communication
packets)
[Warning] Aborted connection 109 to db:'helei1' user: 'sys_admin' host: '192.168.1.1' (Got an error writing communication packets)
[Warning] Access denied for user 'root'@'127.0.0.1' (using password: YES)
[Warning] Got an error writing communication packets

Part3:重點參數(shù)分析

wait_timeout

Command-Line Format --wait-timeout=#
System Variable Name wait_timeout
Variable Scope Global, Session
Dynamic Variable Yes
Permitted Values (Windows) Type integer
Default 28800
Min Value 1
Max Value 2147483
Permitted Values (Other) Type integer
Default 28800
Min Value 1
Max Value 31536000

這個參數(shù)指的是數(shù)據(jù)庫系統(tǒng)在關(guān)閉它之前,服務(wù)器等待非交互式連接上的活動的秒數(shù)。

interactive_timeout

Command-Line Format --interactive-timeout=#
System Variable Name interactive_timeout
Variable Scope Global, Session
Dynamic Variable Yes
Permitted Values Type integer
Default 28800
Min Value 1

這個參數(shù)指的是在關(guān)閉交互式連接之前,服務(wù)器等待活動的秒數(shù)

Warning:警告這兩個參數(shù)建議一起調(diào)節(jié),能夠避免一些坑。

本文的兩個參數(shù)值采用的是默認(rèn)值

mysql> show global variables like '%timeout%';
+----------------------------+----------+
| Variable_name    | Value |
+----------------------------+----------+
| connect_timeout   | 10  |
| delayed_insert_timeout  | 300  |
| innodb_lock_wait_timeout | 50  |
| innodb_rollback_on_timeout | OFF  |
|interactive_timeout  | 28800 |
| lock_wait_timeout   | 31536000 |
| net_read_timeout   | 30  |
| net_write_timeout   | 60  |
| slave_net_timeout   | 3600  |
|wait_timeout    | 28800 |
+----------------------------+----------+
10 rows in set (0.01 sec)

另外在數(shù)據(jù)庫中,我們重點關(guān)注下這兩個參數(shù),看看什么情況下Aborted_clients會提升,什么情況下Aborted_connects 會提升

mysql>show global status like 'aborted%';
+------------------+-------+
|Variable_name | Value |
+------------------+-------+
|Aborted_clients | 19 |
|Aborted_connects | 0  |
+------------------+-------+
2 rows inset (0.00 sec)

Part4:案例1

這里我故意輸入錯誤的密碼5次,來看下數(shù)據(jù)庫的error log和Aborted的哪個參數(shù)記載了這一問題

[root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1
ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES)
[root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1
ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES)
[root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1
ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES)
[root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1
ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES)
[root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1
ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES)

可以看出,這里的Aborted_connects 記錄了密碼錯誤的這一問題

mysql>show global status like 'aborted%';
+------------------+-------+
|Variable_name | Value |
+------------------+-------+
|Aborted_clients | 19 |
|Aborted_connects | 5  |
+------------------+-------+
2 rows inset (0.00 sec)

error log中,也記載了這類密碼輸錯的信息

[Warning] Access denied for user'root'@'127.0.0.1' (using password: YES)
[Warning] Access denied for user 'root'@'127.0.0.1' (using password:YES)
[Warning] Access denied for user 'root'@'127.0.0.1' (using password:YES)
[Warning] Access denied for user 'root'@'127.0.0.1' (using password:YES)
[Warning] Access denied for user 'root'@'127.0.0.1' (using password:YES)

Part5:案例2

接下來我們看下文章第三節(jié)提到的兩個重點參數(shù)對數(shù)據(jù)庫連接的行為影響

這里我們將這兩個參數(shù)均配置為10秒

mysql>set global wait_timeout=10;
Query OK,0 rows affected (0.00 sec)
 
mysql>set global interactive_timeout=10;
Query OK,0 rows affected (0.00 sec)
mysql>show processlist;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect... Connection id: 79 Current database: *** NONE ***
 
+----+------+-----------------+------+---------+------+-------+------------------+
| Id |User | Host   | db | Command | Time | State | Info    |
+----+------+-----------------+------+---------+------+-------+------------------+
| 79 |root | 127.0.0.1:42016 | NULL | Query | 0 | NULL | show processlist |
+----+------+-----------------+------+---------+------+-------+------------------+
1 row in set (0.00 sec)

這里三次操作,可以看到clients數(shù)上升,這是由于timeout參數(shù)控制的,已經(jīng)連接上數(shù)據(jù)的連接被殺掉。

mysql>show global status like 'aborted%';
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect... Connection id: 81 Current database: *** NONE ***
 
+------------------+-------+
|Variable_name | Value |
+------------------+-------+
|Aborted_clients | 22 |
|Aborted_connects | 5  |
+------------------+-------+
2 rows in set (0.01 sec)

error log中記載的是

[Warning] Aborted connection 81 to db: 'unconnected' user: 'root' host: '127.0.0.1' (Got timeout reading communication packets)
[Warning] Aborted connection 78 to db: 'unconnected' user: 'root' host: '127.0.0.1' (Got timeout reading communication packets) 
[Warning] Aborted connection 79 to db: 'unconnected' user: 'root' host: '127.0.0.1' (Got timeout reading communication packets)

Part6:案例3

在這個案例中我們看下最大連接數(shù)對數(shù)據(jù)庫連接的行為影響

mysql>show global variables like 'max_conn%';
+--------------------+-------+
|Variable_name  | Value |
+--------------------+-------+
|max_connect_errors | 1000 |
|max_connections | 1024 |
+--------------------+-------+
2 rows in set (0.00 sec)
 
 
mysql>set global max_connections=2;
Query OK,0 rows affected (0.00 sec)

這里看到爆出了連接數(shù)過多的問題

[root@HE3~]# mysql -uroot -pMANAGER -h127.0.0.1
ERROR 1040 (HY000): Too many connections

而錯誤日志沒有任何記錄

Part7:案例4

第三方工具navicat select結(jié)果沒有出來的時候選擇停止則出現(xiàn)

clients上漲

mysql>show global status like 'aborted%';
+------------------+-------+
|Variable_name | Value |
+------------------+-------+
|Aborted_clients | 28 |
|Aborted_connects | 10 |
+------------------+-------+
2 rows in set (0.00 sec)

error log日志記錄

170626 16:26:56 [Warning] Aborted connection 109 to db: 'helei1' user: 'sys_admin' host: '192.168.1.1' (Got an error writing communication packets)

Part8:原因總結(jié)

  1. 在MySQL中sleep狀態(tài)數(shù)百秒的而且經(jīng)常重復(fù)連接是應(yīng)用程序在工作后沒有關(guān)閉連接的癥狀之一,而是依靠數(shù)據(jù)庫wait_timeout來關(guān)閉它們。強烈建議在操作結(jié)束時更改應(yīng)用程序邏輯以正確關(guān)閉連接;
  2. 檢查以確保max_allowed_packet的值足夠高,并且客戶端沒有收到“數(shù)據(jù)包太大”消息。 這種情況他會中止連接,而不正確關(guān)閉它;
  3. 另一種可能性是TIME_WAIT。建議您確認(rèn)連接被妥善管理并且是在應(yīng)用端正常關(guān)閉;
  4. 確保事務(wù)正確提交(開始和提交),以便一旦應(yīng)用程序“完成”連接,它將處于“clean”的狀態(tài);
  5. 您應(yīng)該確??蛻舳藨?yīng)用程序不中止連接。 例如,如果PHP的選項max_execution_time設(shè)置為5秒,增加connect_timeout是沒用的,因為PHP會殺死腳本。 其他編程語言和環(huán)境也有類似的選項;
  6. 連接延遲的另一個原因是DNS問題。 檢查是否啟用了skip-name-resolve,檢查主機根據(jù)其IP地址而不是其主機名進(jìn)行身份驗證;
  7. 嘗試增加MySQL的net_read_timeout和net_write_timeout值,看看是否減少了錯誤的數(shù)量。

總結(jié)

通過這4個案例,我們能夠了解到,Aborted_clients、和Aborted_connects的區(qū)別,以及什么情況下會爆出什么樣的錯誤日志,文章第二節(jié)中的幾個Aborted錯誤是常見的錯誤,這類錯誤出現(xiàn)的時候腦海里要有一個理論知識,知道什么情況下,會出現(xiàn)什么樣的錯誤,以便快速定位問題。由于筆者的水平有限,編寫時間也很倉促,文中難免會出現(xiàn)一些錯誤或者不準(zhǔn)確的地方,不妥之處懇請讀者批評指正。

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • window上驗證mysql是否安裝成功的操作過程

    window上驗證mysql是否安裝成功的操作過程

    這篇文章主要介紹了window上驗證mysql是否安裝成功,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-08-08
  • 面試官問我Mysql的存儲引擎了解多少

    面試官問我Mysql的存儲引擎了解多少

    mysql面試中最常問的問題之一:小伙子,你說一下你們公司用的存儲引擎,以及你知道有哪些存儲引擎和他們之間的區(qū)別? 所以下面這篇文章主要給大家介紹了關(guān)于Mysql存儲引擎的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • mysql存儲過程用法實例分析

    mysql存儲過程用法實例分析

    這篇文章主要介紹了mysql存儲過程用法,結(jié)合實例形式簡單分析了mysql存儲過程的概念、功能、定義、執(zhí)行、調(diào)用等相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • MySQL修改默認(rèn)字符集編碼的方法

    MySQL修改默認(rèn)字符集編碼的方法

    這篇文章主要介紹了MySQL修改默認(rèn)字符集編碼的方法的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • MySQL中NULL對索引的影響深入講解

    MySQL中NULL對索引的影響深入講解

    這篇文章主要給大家介紹了關(guān)于MySQL中NULL對索引的影響的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • mysql 8.0.12 快速安裝教程

    mysql 8.0.12 快速安裝教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.12的快速安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • MySQL 的啟動選項和系統(tǒng)變量實例詳解

    MySQL 的啟動選項和系統(tǒng)變量實例詳解

    這篇文章主要介紹了MySQL 的啟動選項和系統(tǒng)變量,結(jié)合實例形式詳細(xì)分析了MySQL 啟動選項和系統(tǒng)變量具體原理、功能、用法及操作注意事項,需要的朋友可以參考下
    2020-05-05
  • MySQL中必須了解的13個關(guān)鍵字總結(jié)

    MySQL中必須了解的13個關(guān)鍵字總結(jié)

    這篇文章主要為大家詳細(xì)介紹了MySQL中必須了解學(xué)會的13個關(guān)鍵字,文中的示例代碼簡潔易懂,對我們掌握MySQL有一定的幫助,需要的可以了解下
    2023-09-09
  • Mysql中返回一個數(shù)據(jù)庫的所有表名,列名數(shù)據(jù)類型備注

    Mysql中返回一個數(shù)據(jù)庫的所有表名,列名數(shù)據(jù)類型備注

    在Mysql中怎樣返回一個數(shù)據(jù)庫的所有表名,列名數(shù)據(jù)類型備注
    2010-04-04
  • mysql中json_extract的具體使用

    mysql中json_extract的具體使用

    mysql5.7版本開始支持JSON類型字段,本文主要介紹了mysql中json_extract的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05

最新評論

万源市| 云安县| 五指山市| 连城县| 合阳县| 榕江县| 平利县| 北流市| 建湖县| 白城市| 古田县| 当涂县| 伊金霍洛旗| 涿州市| 丹棱县| 望奎县| 拉萨市| 辉南县| 黎川县| 新疆| 奉节县| 鄂尔多斯市| 晋州市| 贡觉县| 额敏县| 图片| 望都县| 泰来县| 南安市| 温州市| 小金县| 蓝山县| 寿宁县| 报价| 陕西省| 水富县| 石首市| 河津市| 会泽县| 虞城县| 太谷县|