1. 程式人生 > >mysql Error 1040 too many connection解決辦法

mysql Error 1040 too many connection解決辦法

1、當最大連線數比較小時,可能會出現“1040 too many connection”錯誤。

首先需要重啟mysql服務,執行命令:service mysql restart

也有可能是:service mysqld restart

2、登入mysql:mysql -uroot -p

輸入密碼,回車;

3、登入成功後執行以下語句查詢當前的最大連線數:select VARIABLE_VALUE from information_schema.GLOBAL_VARIABLES where VARIABLE_NAME='MAX_CONNECTIONS';

4、執行以下語句修改最大連線數:set global max_connections = 3600;

MYSQL資料庫安裝完成後,預設最大連線數是100,一般流量稍微大一點的論壇或網站這個連線數是遠遠不夠的,雖然通過連線池可以將連線數設定為固定的100,可是在下那BT同事將所有的連線池都設定成了100,話說我們小組有5個人……再話說,個人除錯有必要設定那麼高麼……不過牢騷歸牢騷,問題依然需要解決。

方法一:進入MYSQL安裝目錄 開啟MYSQL配置檔案 my.ini 或 my.cnf查詢 max_connections=100   修改為 max_connections=1000 服務裡重起MYSQL即可。此方法用於Windows下的mysql設定,簡單方便。如果是Linux的話,請看下面。

方法二:MySQL的最大連線數預設是100

客戶端登入:mysql -uroot -p

設定新的最大連線數為1000:mysql> set GLOBAL max_connections=1000

顯示當前執行的Query:mysql> show processlist

顯示當前狀態:mysql> show status

退出客戶端:mysql> exit

檢視當前最大連線數:mysqladmin -uroot -p variables

這個辦法治標不治本,重啟服務以後最大連線數還是100。這個方法用於緊急擴充最大連線數用,不是長久之計。

方法三:以centos 5.4 下面的mysql 5.0.83 rpm版本為例說明:

找到/usr/bin/mysqld_safe編輯它,找到mysqld啟動的那兩行,在後面加上引數 :

-O max_connections=1000

用紅字特別說明:

if test -z "$args"
  then
    $NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR $USER_OPTION --pid-file=$pid_file --skip-external-locking 
-O max_connections=1000 >> $err_log 2>&1
  else
    ev
 al "$NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR $USER_OPTION --pid-file=$pid_file --skip-external-locking $args -O max_connections=1000 >> $err_log 2>&1"
  fi

這段程式碼很不好找,在下也無法說清楚它具體在哪個位置。不過建議從最後往前找會比較快。

重啟mysql服務:# service mysql restart

檢視當前最大連線數:# /usr/local/mysql/bin/mysqladmin -uroot -p variables

輸入root資料庫賬號的密碼後可看到

max_connections 1000 即新改動已經生效。

還有一種方法是修改原始碼,在下沒有試過,就不再多說了