Сайт не закрывает подключения к базе! Исправить.

Павел14 років у сервісі
Дані замовника будуть вам доступні після подання заявки
03.08.2011

Дело в том что сайт очень тормозит, и очень часто падает с такой ошибкой от Mysql:

Warning: mysql_connect() [function.mysql-connect]: User mdova already has more than 'max_user_connections' active connections in /usr/home/site/public_html/classes/DataBase/Class.php on line 22

MySQL Error! Name: NoConnection.

MySQL answer: User tete already has more than 'max_user_connections' active connections.

Дело не в сервере, процессор и память абсолютно не загружены, ресурсов хватает. Проблема в том, что движок сайта не правильно работает с базой данных – не закрывает подключения к базе, вот посмотрите:

mysql> show processlist;

+------+-------+-----------+-------+---------+------+----------------- -----+---------------------------------------------------------------- --------------------------------------+

| Id | User | Host | db | Command | Time | State | Info |

+------+-------+-----------+-------+---------+------+----------------- -----+---------------------------------------------------------------- --------------------------------------+

| 5335 | mdova | localhost | mdova | Query | 7170 | Copying to tmp table | SELECT DISTINCT a.* FROM `adverts` as a, `tags` as b, `city` as c, `tag_object` as d WHERE (a.`id_ca |

| 5438 | mdova | localhost | mdova | Query | 6395 | Locked | UPDATE adverts SET look = look + 1 where id='6207' |

| 5440 | mdova | localhost | mdova | Query | 6380 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5445 | mdova | localhost | mdova | Query | 6313 | Locked | SELECT `original_id` FROM `adverts` where `original_id`=8314184 |

| 5446 | mdova | localhost | mdova | Query | 6307 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5448 | mdova | localhost | mdova | Query | 6295 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5450 | mdova | localhost | mdova | Query | 6279 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5452 | mdova | localhost | mdova | Query | 6277 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5454 | mdova | localhost | mdova | Query | 6246 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5456 | mdova | localhost | mdova | Query | 6230 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5458 | mdova | localhost | mdova | Query | 6207 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5460 | mdova | localhost | mdova | Query | 6096 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5462 | mdova | localhost | mdova | Query | 6051 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5465 | mdova | localhost | mdova | Query | 6006 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5467 | mdova | localhost | mdova | Query | 5975 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5469 | mdova | localhost | mdova | Query | 5937 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5471 | mdova | localhost | mdova | Query | 5904 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5472 | mdova | localhost | mdova | Query | 5904 | Locked | select * from `adverts` where `vip` =0 AND `left` > 0 |

| 5475 | mdova | localhost | mdova | Query | 5871 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5477 | mdova | localhost | mdova | Query | 5867 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5479 | mdova | localhost | mdova | Query | 5861 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5484 | mdova | localhost | mdova | Query | 5832 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5487 | mdova | localhost | mdova | Query | 5691 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5489 | mdova | localhost | mdova | Query | 5661 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5491 | mdova | localhost | mdova | Query | 5616 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5493 | mdova | localhost | mdova | Query | 5613 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5495 | mdova | localhost | mdova | Query | 5612 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5497 | mdova | localhost | mdova | Query | 5609 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5499 | mdova | localhost | mdova | Query | 5605 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5501 | mdova | localhost | mdova | Query | 5561 | Locked | select * from `adverts` where `vip` = 0 AND `left` > 0 |

| 5672 | root | localhost | NULL | Query | 0 | NULL | show processlist |

+------+-------+-----------+-------+---------+------+----------------- -----+-------------------------------------------------