改成mysql_connect(),或修改max_connections

解决方案 »

  1. cvm
  2. 说明你的数据库连接数量太多了。这个函数打开的是持久连接,当脚本执行完毕后到 SQL 服务器的连接不会被关闭,此连接将保持。你需要用mysql_close()来关闭连接。或者你也可以使用mysql_connect()来进行连接
      

  3. 1 修改 my.ini 或者 my.cnf 中.关于 max connect 的数值 .2 将连接 OBJECT 保存到一个公用的地方共用.3 缓存数据查询结果,减少数据库查询次数.以3为最佳.也能快速地提升站点速度.
      

  4. 1.每次连接用mysql_close关闭.
    2.增大 max connect 的数值.
    3.写个程序定时kill长时间的sleep连接.
      

  5. PHP执行完毕会自动关闭连接,
    一味增大max connect 也不是好办法
    还是从程序和数据库上找原因比较实际。
    添加缓存是个好办法 :)
      

  6. 添加缓存是个好办法?
    怎么样设置呢?是在my.ini设置吗?我是才学者,如果能讲得明白一些我再追加额外分数!
      

  7. 请教goldily:如何kill掉sleep连接
      

  8. kill-mysql.sh#!/bin/sh
    echo "show processlist" | mysql -uroot -pxxxxxxx -si|grep 'localhost'| awk '{ if( $6> 10 && $1!=180) print ("kill", $1, ";")}'| mysql -uroot -pxxxxxxx -A---
    假定mysql用户/密码为: root/xxxxxxx 要杀掉本地连接超过 180 秒的定时运行 kill-mysql.sh 就行了
      

  9. 不要用pconnect就行了
    还有就是把mysql的wait_timeout改小,默认是8小时