mysql too many open connections問題解決方法。
原文參考:http://www.jbxue.com/db/10068.html
原因主要是:max_connections配置問題導致,它必須在[mysqld]下面才會生效。
曾經以為在my.cnf寫入max_connections = 2000
就可以改變mysql的最大並發量,今天查到一個命令,發現服務器的mysql最大連接數為151.
控制台,連接上mysql
show variables;
這條命令可以看到所有基礎配置
如果單獨看max_connections可以這樣
show variables like 'max%'; +—————————-+————+ | Variable_name | Value | +—————————-+————+ | max_allowed_packet | 1048576 | | max_binlog_cache_size | 4294963200 | | max_binlog_size | 1073741824 | | max_connect_errors | 10 | | max_connections | 151 | | max_delayed_threads | 20 | | max_error_count | 64 | | max_heap_table_size | 16777216 | | max_insert_delayed_threads | 20
151 好像是lampp默認的最大連接數。
my.cnf裡大致這樣寫的
max_connections=2000 # The MySQL server [mysqld] port = 3306 socket = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
改完以後
# The MySQL server [mysqld] max_connections=2000 port = 3306
然後把max_connections=2000移動到[mysqld]下面,重啟動mysql
+—————————-+————+ | Variable_name | Value | +—————————-+————+ | max_allowed_packet | 1048576 | | max_binlog_cache_size | 4294963200 | | max_binlog_size | 1073741824 | | max_connect_errors | 10 | | max_connections | 2000 | | max_delayed_threads | 20 | | max_error_count | 64 | | max_heap_table_size | 16777216 | | max_insert_delayed_threads | 20
就可以了。
這配置必須在[mysqld]下面才有用。