php网站报方法不存在

检查发现apache和mysql都是运行状态,重启后恢复,

通过出现问题时用navicat访问mysql数据库发现提示too many connections

这是mysql连接数过多导致的

打开msyql的配置文件my.ini找到max_connections参数

将他的值改为1000,保存后重启mysql即可

如问题依旧,则需要进入mysql然后运行

show global variables like 'wait_timeout'; 

(查看mysql的非交互连接的等待时间是多少,
这个数值指的是mysql在关闭一个非交互的连接之前要等待的秒数,默认是28800s)
然后运行
set global wait_timeout=5; 
(修改这个数值,这里可以随意,最好控制在几分钟内 )

set global interactive_timeout=50; 
(修改这个数值,表示mysql在关闭一个连接之前要等待的秒数,至此可以让mysql自动关闭那些没用的连接,但要注意的是,正在使用的连接到了时间也会被关闭,因此这个时间值要合适)

就可以了,当sleep状态的连接数达到1000后不再增加,维持在1000个

切记重启服务器!重启服务器!重启服务器!

注意:

show processlist; 
这个mysql命令可以查看连接数,可以发现有很多连接处于sleep状态,这些其实是暂时没有用的,所以可以kill掉,例如

kill 1180421; 

运行show processlist; 可以得到所以连接到这个服务器上的MySQL连接:

mysql> show processlist; 
+---------+------+---------------------+---------+---------+------+-------+-------------------+ 
| Id        | User | Host                   | db  | Command | Time | State | Info  | 
+---------+------+---------------------+---------+---------+------+-------+-------------------+ 
| 1180421 | ur   | 202.103.96.68:49754 | test1   | Sleep   |    1 |       | NULL              | 
| 1180427 | ur   | 202.103.96.68:55079 | test2   | Sleep   |    1 |       | NULL              | 
| 1180429 | ur   | 202.103.96.68:55187 | testdba | Sleep   |    0 |       | NULL              | 
| 1180431 | ur   | 202.103.96.68:55704 | testdba | Sleep   |    0 |       | NULL              | 
| 1180437 | ur   | 202.103.96.68:32825 | test1   | Sleep   |    1 |       | NULL              | 
| 1180469 | ur   | 202.103.96.68:58073 | testdba | Sleep   |    0 |       | NULL              | 
| 1180472 | ur   | 83.136.93.131:47613 | test2   | Sleep   |    8 |       | NULL              | 
| 1180475 | root | localhost           | NULL    | Query   |    0 | NULL  | show  PROCESSLIST |
 +---------+------+---------------------+---------+---------+------+-------+-------------------+ 
8 rows in set (0.00 sec) 
mysql>

然后,你可以看到像上面这样的MySQL数据连接列表,而且每一个都会有一个进程ID号(在上表的第一列)。我们只要输入这样的命令:

mysql> kill 1180421
Query OK, 0 rows affected (0.00 sec) 
mysql>

其中1180421为你在进程列表里找到并且要杀掉的进程号。