这个错误显然是在mysql_connect之后忘记了mysql_close;
当大量连接时,会出现连接太多错误,mysql默认连接是100,并且在什么情况下会发生这种错误?
在正常的mysql_connect之后调用mysql_close()来关闭连接。
但是,当发生连接错误时,mysql_real_query()错误可能会退出mysql_close();
所以一定要在程序返回之前检查是否close()。最安全的方法是在编写任何函数时只有一个退出!
还有一些方法可以通过修改mysql配置文件来增加允许的连接数!
有时您的服务器经常遇到这样的错误:
错误消息如下:
无法连接到MySQL服务器
错误:连接太多
错误号。 1040
之前已向管理员发送了类似的错误报告。
从官方文档中,在Linux上编译和安装的mysql的默认连接是100。
文档:http://dev.mysql.com/doc/refman/5.0/en/too-many-connections.html
mysql官方告诉我们,我们需要修改max_connections的值,那么我们如何修改呢?有两种方法
1,修改配置文件
修改/etc/my.cnf文件并将max_connections=N添加到[mysqld]。如果您没有此文件,请将您需要的* .cnf文件从已编译源中的support-files文件夹复制到/etc/my.cnf。我正在使用my-medium.cnf,一种中等服务器配置。例如,我的[mysqld]内容如下:的[mysqld]
端口=3306
Socket=/tmp/mysql.sock
跳过锁定
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脚本启动的用户。
修改MYSQLHOME/bin/mysqldsafe文件。例如:/usr/local/mysql/bin/mysqldsafe这个文件grep-n'maxconnection'
MYSQLHOME/bin/mysqldsafe文件例如:/usr/local/mysql/bin/mysqldsafe这个文件grep-n'maxconnection'MYSQL_HOME/bin/mysqld_safe
修改相应行号的max_connections参数值
3,服务器登录mysql:mysql -u root -p
百分之九十无法进入并且无法进入重启命令:/etc/init.d/mysql restart(centos system)
此时,重启mysql可以连接到mysql,如果还有时间,可以继续下一步,治愈疾病
打开配置文件添加配置vi /etc/my.cnf
Wait_timeout=600
Interactive_timeout=600
再次重启mysql