mysql 太多的連線數 mysql 連線數太多

2021-10-17 19:18:04 字數 1753 閱讀 9042

【問題記錄】:

mysql: error 1040: too many connections

【解決辦法】:

1.檢視mysql的最大連線數:

mysql> show variables like '%max_connections%'; //500

2.檢視伺服器響應的最大連線數:

mysql> show global status like 'max_used_connections'; //501

3.設定這個最大連線數值:

// 方法一:

mysql> set global max_connections=256;

//方法二:永久更改

vi /etc/my.cnf

max_connections = 512

//方法三:非使用mysqld指令碼自動啟動的使用者。

修改$mysql_home/bin/mysqld_safe檔案

例如:/usr/local/mysql/bin/mysqld_safe這個檔案

grep -n 『max_connection』 $mysql_home/bin/mysqld_safe

修改對應行號的max_connections引數值

說明:對於mysql伺服器最大連線數值的設定範圍比較理想的是:

伺服器響應的最大連線數值佔伺服器上限連線數值的比例值在10%以上,如果在10%以下,說明mysql伺服器最大連線上限值設定過高。

設定最大max_connections值沒有硬性限制。因此,您必須根據工作量,與mysql伺服器的同時連線數等來明智地選擇max_connections。通常,建議不要將max_connections值設定得太高,因為在某些鎖定條件下或如果所有這些連線都執行得很大,則會降低速度競爭問題可能會出現。

在使用臨時/記憶體表進行活動連線的情況下,記憶體使用率可能會更高。在具有較小ram或在應用程式端具有大量連線控制的系統上,我們可以使用較小的max_connections值,例如100-300。具有16g ram或更高的max_connections = 1000的系統是個好主意,每個連線緩衝區應具有良好/預設值,而在某些系統上,我們可以看到最多8k個最大連線,但是在負載峰值的情況下,此類系統通常會崩潰。

4.伺服器等待時間

mysql> show global variables like 'wait_timeout'; //28800

5.設定等待時間

mysql> set global wait_timeout=10;

6.所有連線到這個伺服器上的mysql連線

mysql> show processlist;

7.殺掉程序

mysql> kill 1180421;

8.檢視當前資料庫的所有使用者:

select user,host,password from mysql.user;

9.業務**處理gorm-psql

// 關閉鏈結

db.db().close()

// 全域性共享鏈結的話,設定乙個最大開啟鏈結數

db.db().setmaxopenconns(10)

// 開啟db

db, err = gorm.open("postgres", conncfg)

// 設定最大連線數

db.db().setconnmaxlifetime(5 * time.second)

db.db().setmaxopenconns(10)

db.db().setmaxidleconns(10)

相關鏈結

設定Mysql連線數

mysql資料庫連線數過多導致系統出錯,系統不能連線資料庫,關鍵要看兩個資料 1 資料庫系統允許的最大可連線數max connections。這個引數是可以設定的。如果不設定,預設是100。最大是16384。2 資料庫當前的連線線程數threads connected。這是動態變化的。檢視max c...

mysql錯誤連線數

昨天除錯程式的時候,總是提示host server ip 不能被解析,具體錯誤資訊忘記了,查了一下,說是mysql連線數設定小了。max connect error的數字一般都是10,改為1000就好了。set global max connections 1000 命令 show processl...

mysql優化 連線數

有時候我們會遇見 mysql error 1040 too many connections 的異常,一種原因是訪問量過高,mysqlserver抗不住,這個時候就要考慮新增從server分散讀壓力,還有一種原因就是mysql配置檔案裡max connections值過小。首先,我們來檢視mysql...