ошибка max_user_connections?

seva2

Партнер PHPClub.ru
ошибка max_user_connections?

Вопрос, как считается этот показатель?

Это количество mysql_connect или количество единовременных запросов?

Как в пхп скрипте можно получить текущее значение, точней количества коннектов?
 

phprus

Moderator
Команда форума
seva2
Это кол-во соединений с БД. (точнее максимальное число этих соеденений в один момент времени)

Вопрос, как считается этот показатель?
Из my.ini файла настроек mysql, самим мсервером mysql.
 

seva2

Партнер PHPClub.ru
Именно количество соединений?
т.е количество вызовов mysql_connect в единицу времени, верно я понял?


Как можно узнать текущее количество соединений? Как через phpmyadmin это делается?
 

Фанат

oncle terrible
Команда форума
.е количество вызовов mysql_connect в единицу времени, верно я понял?
количество ОТКРЫТЫХ СОЕДИНЕНИЙ

не скольк человек в магазин сейчас ВОШЛО, а столько, сколько там ВСЕГО сейчас тусуется.
Как можно узнать текущее количество соединений? Как через phpmyadmin это делается?
это делается через консоль
 

seva2

Партнер PHPClub.ru
Фанат а что ты мне посоветуеш делать в такой ситуации..
Каждый день боты с 2-3 ИМЕННО В ЭТОТ ПРОМЕЖУТОК мощно индексят инет... При этом перегружая сервер.
Вся инфа хранится в кеше, и при каждом запросе страницы с моего сервера выполняется 1 легкий запрос к базе.... Но так как боты миллионы страниц посешают, они перегружают и значение переваливает за 200.

Я хочу проверять уровень max... и если больше 50 то не популярных ботов отрубать.... Что думаеш?

-~{}~ 05.12.06 15:26:

+ Смотри что нашел: mysql_list_processes - вроде бы то что мне надо
$res_mysql=mysql_list_processes($db);
while($ret=mysql_fetch_assoc($res_mysql))
{
$n_z_b++;
}

Только че то не пойму почему всегда $n_z_b=1 хотя
Array ( [Id] => 100 [User] => root [Host] => localhost:3471 [db] => [Command] => Processlist [Time] => 0 [State] => [Info] => )
Array ( [Id] => 101 [User] => root [Host] => localhost:3473 [db] => [Command] => Processlist [Time] => 0 [State] => [Info] => )
 

alexei.lexx

Новичок
Поэкпериментируй с max_connections. Подними до 300-400. Линукс без проблем позволяет MySQL держать 500-1000 соединений. Или вообще попробуй использовать постоянные соединения в этом случае.

-~{}~ 05.12.06 16:11:

mysql_pconnect
 

seva2

Партнер PHPClub.ru
НЕ так долго выполняюбтся запросы, у меня вопрос, как мне в пхп скрипте узнать количество коннектов? Если бы я мог определить количество то я бы смог написать фильтер ботов!
 

alexei.lexx

Новичок
SHOW STATUS
поле Connections содержит общее количество соединений, установленных с базой с начала работы сервера.
Но попробуй использовать постоянные соединения.
 

seva2

Партнер PHPClub.ru
Где почитать что лучше юзать и в каикх случаях
mysql_pconnect или mysql_connect
 

hermit_refined

Отшельник
Автор оригинала: alexei.lexx
Или вообще попробуй использовать постоянные соединения в этом случае.
вы можете логически обосновать, каким образом автору поста должны помочь постоянные соединения?..

seva2
какие у вас ограничения стоят?
SHOW VARIABLES LIKE '%connections';
 

alexei.lexx

Новичок
Проблема в большом количестве одновременно открытых соединений.

Читай здесь http://www.php.net/manual/en/features.persistent-connections.php

Или help по функции mysql_pconnect.

mysql_pconnect() работает аналогично mysql_connect() с двумя отличиями. Постоянные соединения раздаются разным соединениям. То есть

Во-первых, при соединении, функция пытается найти уже открытый (постоянный) указатель на тот же сервер с тем же пользователем и паролем. Если он найден, возвращён функцией будет именно он, вместо открытия нового соединения.

Во-вторых, соединение с SQL-сервером не будет закрыто, когда работа скрипта закончится. Вместо этого, оно останется рабочим для будущего использования (mysql_close() также не закрывает постоянные соединения).

Лично я не использую постоянные соединения и не знаю, с какими проблемами там можно столкнуться, но надеюсь помогут.
 

hermit_refined

Отшельник
Проблема в большом количестве одновременно открытых соединений.
вот я и спрашиваю - каким образом, при использовании постоянных соединений (которые, как вы сами написали - закрыть невозможно), общее число соединений уменьшится?
Лично я не использую постоянные соединения и не знаю
тогда может и не будете советовать, а?
читаю:
"В случае, если затраты на установку соединения велики, постоянные соединения могут вам существенно помочь."
"Следует заметить, что этот подход имеет некоторые недостатки: если вы используете базу данных с ограниченным количеством возможных подключений, оно может быть превышено количеством запрашиваемых дочерними процессами постоянных соединений."
а вы чего читали?..
 

seva2

Партнер PHPClub.ru
Народ))) Плиз.... Вы мне скажите, как мне в пхп скрипте получиь количество коннектов на данный момент.... Мне нужно получить только ответ на данный вопрос!

Ктстаи от pconnect я ушол, раньше использовал его, но проблем было еще больше!
 

hermit_refined

Отшельник
Вы мне скажите, как мне в пхп скрипте получиь количество коннектов на данный момент....
вам только кажется, что вам это нужно. на самом деле - это не может быть нужно.
на мой вопрос ответите, не?..
 

alexei.lexx

Новичок
Хм... я вот попробовал скриптик

<?php

$mysql = mysql_pconnect('localhost', 'root');
echo $mysql . ' ' . mysql_thread_id($mysql);

?>

Каждый раз при запуске он пишет ID одного и того же ресурса и потока. Значит скрипт каждый раз получает одно и то же соединение? Или я не совсем правильно понимаю природу постоянного соединения?
 

Фанат

oncle terrible
Команда форума
alexei.lexx
не пиши в эту тему больше.

-~{}~ 05.12.06 18:00:

seva2
тебе не нужно количество коннектов в пхп скрипте
 

seva2

Партнер PHPClub.ru
я уже обошел это, сам за себя рад))) Офигенно получилось)) Только возникает ошибка макс юзера, 1 минуту баняться 1 из 4 запросов ботов, если ошибки продолжаются то через 2 минуты будут баниться все боты, до тех пор пока ошибка не исчезнет!
 
Сверху