程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 解決Mysql錯誤Too many connections的方法

解決Mysql錯誤Too many connections的方法

編輯:關於MYSQL數據庫

MySQL數據庫 Too many connections
出現這種錯誤明顯就是 mysql_connect 之後忘記 MySQL_close
當大量的connect之後,就會出現Too many connections的錯誤
MySQL默認的連接為100個
而什麼情況下會出現這種錯誤呢?

正常的mysql_connect 之後調用 MySQL_close()關閉連接
但在連接錯誤時,會者mysql_real_query()出現錯誤退出時,可能忘記MySQL_close();
所以在程序return 之前一定要判斷是否close(),最穩妥的方法就是在寫任何函數時都只有一個出口!
還有可以通過修改MySQL配置文件來加大允許連接的數量!

有時你的服務器是經常出現這樣的錯誤呢:
錯誤信息如下:
Can not connect to MySQL Server

Error: Too many connections
Errno.: 1040

Similar error report has beed dispatched to administrator before.

從官方文檔知道Linux上面編譯安裝的MySQL默認的連接為100個
文檔:http://dev.MySQL.com/doc/refman/5.0/en/too-many-connections.Html

MySQL官方告訴我們需要修改max_connections的值,那麼我們怎麼去修改呢?有兩種方法
1、修改配置文件文件
修改/etc/my.cnf這個文件,在[mysqld] 中新增max_connections=N,如果你沒有這個文件請從編譯源碼中的support-files文件夾中復制你所需要的*.cnf文件為到 /etc/my.cnf。我使用的是my-medium.cnf,中型服務器配置。例如我的[MySQLd]的內容如下
[MySQLd]
port = 3306
socket = /tmp/MySQL.sock
skip-locking
key_buffer = 160M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
max_connections=1000

由於對MySQL還不是很熟悉,所以很多參數沒有修改。哈哈。。

2、非使用MySQLd腳本自動啟動的用戶。
修改$MYSQL_HOME/bin/MySQLd_safe文件
例如:/usr/local/mysql/bin/MySQLd_safe這個文件
grep -n ‘max_connection’ $MYSQL_HOME/bin/MySQLd_safe
修改對應行號的max_connections參數值

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved