明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

MySQL數(shù)據(jù)庫報錯:Too many connections的處理方法

[摘要]出現(xiàn)這種錯誤明顯就是 mysql_connect 之后忘記 mysql_close;當大量的connect之后,就會出現(xiàn)Too many connections的錯誤,mysql默認的連接為100個...
出現(xiàn)這種錯誤明顯就是 mysql_connect 之后忘記 mysql_close;
當大量的connect之后,就會出現(xiàn)Too many connections的錯誤,mysql默認的連接為100個,而什么情況下會出現(xiàn)這種錯誤呢?
正常的mysql_connect 之后調(diào)用 mysql_close()關(guān)閉連接
但在連接錯誤時,會者mysql_real_query()出現(xiàn)錯誤退出時,可能忘記mysql_close();
所以在程序return 之前一定要判斷是否close(),最穩(wěn)妥的方法就是在寫任何函數(shù)時都只有一個出口!
還有可以通過修改mysql配置文件來加大允許連接的數(shù)量!
有時你的服務(wù)器是經(jīng)常出現(xiàn)這樣的錯誤呢:
錯誤信息如下:

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文件夾中復(fù)制你所需要的*.cnf文件為到 /etc/my.cnf。我使用的是my-medium.cnf,中型服務(wù)器配置。例如我的[mysqld]的內(nèi)容如下

[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還不是很熟悉,所以很多參數(shù)沒有修改。哈哈。。
2、非使用mysqld腳本自動啟動的用戶。
修改$MYSQL_HOME/bin/mysqld_safe文件
例如:

/usr/local/mysql/bin/mysqld_safe這個文件
grep -n ‘max_connection’ $MYSQL_HOME/bin/mysqld_safe

修改對應(yīng)行號的max_connections參數(shù)值

以上就是MySQL數(shù)據(jù)庫報錯:Too many connections的解決辦法的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。