出現這種錯誤明顯就是 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參數值
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END