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 = 3306socket = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
改完以后
# The MySQL server[mysqld]max_connections=2000port = 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]下面才有用。