首頁 > 軟體

MySQL最大連線數限制的修改步驟

2022-07-25 14:02:16

前言

隨著現在大部分的工程結構都是微服務化,每個服務一般都有本服務獨立的DB庫,對MySQL的連線數要求也是越來越多。如果本地安裝的測試資料,沒有對MySQL預設連線數修改,測試時,多開幾個微服務,可能就遇到資料庫連線數過多的問題。對MySQl預設的最大連線數做修改就必不可少了。

一、前提條件

修改資料庫是比較危險的動作,修改之前以開發測試的資料庫為例,做好資料的備份。以防資料庫誤操作,丟失資料等等 。

修改MySQL的前提條件:

1、有Linux使用者的管理員許可權賬號,需要對MySQL安裝的設定問卷進行修改;

2、MySQL資料庫的管理賬號。

3、如果有運維,與運維和開發負責人員商量修改,資料是大事,以防資料丟失,做好資料的備份。

二、修改步驟

1、使用root使用者登入和連線資料庫

# mysql -uroot -p

輸入命令後,提示輸入root使用者密碼,輸入密碼後,成功登入資料庫。

登入MySQL資料庫

2、檢視當前資料庫的最大連線數

mysql> show variables like 'max_connections';

 如下圖,MySQL的最大連線數才151,稍微多開幾個微服務,基本都會報資料庫連線數過多的異常。

檢視資料庫的最大連線數

3、修改MySQL組態檔

找到MySQL的組態檔並且修改:/etc/mysql/mysql.conf.d/mysqld.cnf

# view /etc/mysql/mysql.conf.d/mysqld.cnf

修改組態檔中的最大連線數,max_connections = 2000,修改完儲存設定退出編輯狀態。

[mysql]
max_connections = 2000

修改組態檔中的最大連線數

4、檢視系統limit限制

使用命令查詢系統的檔案限制

# 查詢檔案限制
$ ulimit -n
1024

如果檢視的系統檔案限制是65535,說明系統已經修改過了,不需要再修改。

5、修改系統檔案限制

5.1、在/etc/security/limits.conf最後增加如下兩行記錄,編輯完儲存設定

# 編輯系統檔案組態檔
$ view /etc/security/limits.conf
 
# 在/etc/security/limits.conf最後增加如下兩行記錄
* hard nofile 65535
* soft nofile 65535

最後增加如下兩行記錄

5.2、編輯/etc/pam.d/common-session,加入一行 session required pam_limits.so

# 編輯/etc/pam.d/common-session,
# 加入一行 session required pam_limits.so
 
$ view /etc/pam.d/common-session

編輯組態檔

5.3、編輯/etc/profile,加入ulimit -SHn 65535,儲存後執行scource命令使設定生效,再次檢視系統檔案限制

# 編輯/etc/profile,加入ulimit -SHn 65535
# 編輯完儲存
$ view /etc/profile
 
# 執行scource 命令使設定生效,確認修改是否成功
$ source /etc/profile
 
# 再次檢視系統limit限制,看組態檔是否生效
$ ulimit -n
65535

系統組態檔已修改成功

6、修改mysql設定

查詢mysql.service 啟動檔案

$ systemctl status mysql.service
● mysql.service - MySQL Community Server
 Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
 Active: active (running) since Wed 2018-12-19 23:53:28 CST; 16min ago
 Process: 25857 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
Process: 25843 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 25856 (mysqld)
  Tasks: 28 (limit: 4915)
 Memory: 185.9M
    CPU: 1.577s
 CGroup: /system.slice/mysql.service
         └─25856 /usr/sbin/mysqld

進入目錄 /etc/systemd/system/multi-user.target.wants,找到檔案mysql.service

sudo vim mysql.service,在 [Service] 最後加入:

LimitNOFILE=65535
LimitNPROC=65535

修改mysql的啟動組態檔

7、執行下面命令使修改生效

生效剛才修改的組態檔,重新啟動MySQL服務。

$ systemctl daemon-reload
$ systemctl restart mysql.service

8、登入mysql,使用 show variables like "%max_connections%"; 檢視最大連線數,這時發現已經改成2000。

最大連線數已修改成功

三、結語

至此MySQL的最大連線數已修改完成,在開發過程中,儘量合理使用資料庫的連線數量。

到此這篇關於MySQL最大連線數限制修改的文章就介紹到這了,更多相關MySQL修改最大連線數限制內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com