共計 2291 個字符,預計需要花費 6 分鐘才能閱讀完成。
本篇內容主要講解“怎么使用 MySQL 5.6 參數 extra_port”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“怎么使用 MySQL 5.6 參數 extra_port”吧!
一 前言
作為 MySQL DBA, 在運維 MySQL 的工作過程中, 常常遇到 Too many connections 這個錯誤,這時作為數據庫維護人員都不能登陸數據庫進行維護 是多么窘迫的事。可能有人會說可以修改配置文件,然后重啟數據庫來解決。恩,不過這個是很多種解決方法中 可用性最差的一種,本文介紹通過 5.6 新的特性 – 管理端口 來解決這個問題。
二 認識 extra_port
MySQL 在 5.6.14 版本之后引入一個參數 extra_port 用來解決 too many connections 的問題。
percona 官方介紹:
從官方文檔介紹來看,在 MySQL 啟動的時候使用該參數指定一個端口號(不要和正常的數據庫服務端口沖突),Percona Server 會監聽來自該端口的請求。啟用該參數可以解決使用 thread_pool 特性時,由于所有的連接池 worker 忙于處理慢 querey 或者被鎖定導致 DBA 無法通過正常的端口連接 DB, 以便 DBA 可以正常維護數據庫。
具體用法如下:
mysql –port= extra-port-number –protocol=tcp
Maridb 官方介紹 (和 percona 的介紹類似, 讀者朋友可以自己翻譯)
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 該參數主要是控制通過管理端口可以創建多少個連接。
官方介紹:
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 測試
測試環境:5.6.26-74.0-log Percona Server
參數設置:
max_connections = 1
extra_max_connections = 1
extra_port=13306
通過上面兩個參數,來設置整個數據庫的連接數。通過上面的參數配置, 最多可以創建 4 個連接。
測試過程,通過使用下面的命令,嘗試連接數據庫:
場景 1 模擬業務連接數據庫, 在兩個不同的 session 下嘗試連接
mysql -uyang -pyang -h227.0.0.1 -P3306
場景 2 模擬 DBA 連接數據庫, 在兩個不同的 session 下嘗試連接
mysql -uroot -h227.0.0.1 -P3306
場景 3 模擬 DBA 連接數據庫, 在兩個不同的 session 下嘗試連接
mysql -S /srv/my_3306/run/mysql.sock
場景 4 占滿數據庫的所有連接數,然后使用 extra_port 端口以 root 身份連接
mysql –port=13306 –protocol=tcp -uroot -h227.0.0.1
場景 5 占滿數據庫的所有連接數,然后使用 extra_port 端口以業務身份連接
mysql –port=13306 –protocol=tcp -uyang -pyang -h227.0.0.1
場景 6 這次不指定通信協議,嘗試連接
mysql –port=13306 -uyang -pyang -h227.0.0.1
場景 7 模擬 DBA 和業務同時連接數據庫, 在兩個不同的 session 下嘗試連接
mysql -uyang -pyang -h227.0.0.1 -P3306
mysql -S /srv/my_3306/run/mysql.sock
mysql -uroot -h227.0.0.1 -P3306
測試的結果
場景 1,只能連接 1 次,第 2 次報錯 ERROR 1040 (HY000): Too many connections
場景 2,只能連接 2 次,第 3 次報錯 ERROR 1040 (HY000): Too many connections
場景 3,只能連接 2 次,第 3 次報錯 ERROR 1040 (HY000): Too many connections
場景 4,可以連接 2 次,第 3 次報錯 ERROR 1040 (HY000): Too many connections
場景 5,無法連接,提示 ERROR 1040 (HY000): Too many connections
場景 6, 在業務占用連接池滿,以管理員可以連接 2 次,
場景 7 如果管理員先登陸,業務方無法連接;如果業務方先登陸,管理員可以登陸一次,無法登陸第二次
共可以連接 4 次。
到此,相信大家對“怎么使用 MySQL 5.6 參數 extra_port”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!