溫馨提示×

溫馨提示×

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

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

怎么使用MySQL 5.6參數(shù)extra_port

發(fā)布時(shí)間:2021-11-10 13:59:48 來源:億速云 閱讀:152 作者:iii 欄目:MySQL數(shù)據(jù)庫

本篇內(nèi)容主要講解“怎么使用MySQL 5.6參數(shù)extra_port”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么使用MySQL 5.6參數(shù)extra_port”吧!

一 前言
    作為MySQL DBA, 在運(yùn)維MySQL的工作過程中,常常遇到Too many connections這個(gè)錯(cuò)誤,這時(shí)作為數(shù)據(jù)庫維護(hù)人員都不能登陸數(shù)據(jù)庫進(jìn)行維護(hù) 是多么窘迫的事。可能有人會說可以修改配置文件,然后重啟數(shù)據(jù)庫來解決。恩,不過這個(gè)是很多種解決方法中 可用性最差的一種,本文介紹通過 5.6 新的特性--管理端口 來解決這個(gè)問題。
二 認(rèn)識 extra_port
   MySQL 在5.6.14 版本之后引入一個(gè)參數(shù)extra_port 用來解決too many connections的問題。
percona 官方介紹:
從官方文檔介紹來看,在MySQL啟動的時(shí)候使用該參數(shù)指定一個(gè)端口號(不要和正常的數(shù)據(jù)庫服務(wù)端口沖突),Percona Server會監(jiān)聽來自該端口的請求。啟用該參數(shù)可以解決使用thread_pool特性時(shí),由于所有的連接池worker忙于處理慢querey或者被鎖定導(dǎo)致DBA無法通過正常的端口連接DB, 以便DBA可以正常維護(hù)數(shù)據(jù)庫。
具體用法如下:

  1. mysql --port='extra-port-number' --protocol=tcp

Maridb 官方介紹 (和percona的介紹類似,讀者朋友可以自己翻譯)

  1. Description: Extra port number to use for tcp-connections in a one-thread-per-connection manner. If set to 0, no other port is used. Introduced for the MariaDB 5.1 threadpool.

extra_max_connections  該參數(shù)主要是控制通過管理端口可以創(chuàng)建多少個(gè)連接。
官方介紹:
   "This variable can be used to specify the maximum allowed number of connections plus one extra SUPER users connection on the extra_port. This can be used with the extra_port variable to access the server in case no new connections can be established due to all worker threads being busy or being locked when pool-of-threads feature is enabled."
三 extra_port 測試
   測試環(huán)境:5.6.26-74.0-log Percona Server
   參數(shù)設(shè)置:

  1. max_connections = 1

  2. extra_max_connections = 1

  3. extra_port=13306

通過上面兩個(gè)參數(shù),來設(shè)置整個(gè)數(shù)據(jù)庫的連接數(shù)。通過上面的參數(shù)配置,最多可以創(chuàng)建4個(gè)連接。
測試過程,通過使用下面的命令,嘗試連接數(shù)據(jù)庫:
場景1 模擬業(yè)務(wù)連接數(shù)據(jù)庫,在兩個(gè)不同的session下嘗試連接 

  1. mysql -uyang -pyang -h227.0.0.1 -P3306

場景2 模擬DBA連接數(shù)據(jù)庫,在兩個(gè)不同的session下嘗試連接

  1. mysql -uroot -h227.0.0.1 -P3306

場景3 模擬DBA連接數(shù)據(jù)庫,在兩個(gè)不同的session下嘗試連接

  1. mysql -S /srv/my_3306/run/mysql.sock

場景4 占滿數(shù)據(jù)庫的所有連接數(shù),然后使用extra_port 端口以root身份連接

  1. mysql --port=13306 --protocol=tcp -uroot -h227.0.0.1

場景5 占滿數(shù)據(jù)庫的所有連接數(shù),然后使用extra_port 端口以業(yè)務(wù)身份連接

  1. mysql --port=13306 --protocol=tcp -uyang -pyang -h227.0.0.1

場景6 這次不指定通信協(xié)議,嘗試連接

  1. mysql --port=13306 -uyang -pyang -h227.0.0.1

場景7 模擬DBA和業(yè)務(wù)同時(shí)連接數(shù)據(jù)庫,在兩個(gè)不同的session下嘗試連接

  1. mysql -uyang -pyang -h227.0.0.1 -P3306

  1. mysql -S /srv/my_3306/run/mysql.sock

  2. mysql -uroot -h227.0.0.1 -P3306

測試的結(jié)果
      場景1,只能連接1次,第2次報(bào)錯(cuò) ERROR 1040 (HY000): Too many connections
      場景2,只能連接2次,第3次報(bào)錯(cuò) ERROR 1040 (HY000): Too many connections
      場景3,只能連接2次,第3次報(bào)錯(cuò) ERROR 1040 (HY000): Too many connections
      場景4,可以連接2次,第3次報(bào)錯(cuò) ERROR 1040 (HY000): Too many connections
      場景5,無法連接,提示"ERROR 1040 (HY000): Too many connections"
      場景6, 在業(yè)務(wù)占用連接池滿,以管理員可以連接2次,
      場景7  如果管理員先登陸 ,業(yè)務(wù)方無法連接; 如果業(yè)務(wù)方先登陸,管理員可以登陸一次,無法登陸第二次
      共可以連接4次。

到此,相信大家對“怎么使用MySQL 5.6參數(shù)extra_port”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

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

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

AI