Помогите решить проблемку.

VadikO

Путник
Пользователь
Сообщения
105
Розыгрыши
0
Репутация
502
Реакции
65
Баллы
0
Error 1040 mysql too many connections.
Проблема такая..каждые 4 часа примерно не могу ничего сделать и сервак умирает...После ребута все и снова 4 часа...раньше такой проблемы не было...начинает тупить регистрация и так далее и я не могу зайти в базу..стоит тачка на удаленного управлении..логи и сама база пишет 1040 ошибку я менял через консоль самого мускулы и my.conf и 1000 и 10 000 и 100 000 ничего не помогает...помогите пожалуйста..
Я ставил в my.cnf коннекты 1000 и 10 000 и 100 000 все равно ему мало ровно 3-5 часов и всеоит тачка на удаленного управлении..логи и сама база пишет 1040 ошибку я менял через консоль самого мускулы и my.conf и 1000 и 10 000 и 100 000 ничего не помогает...помогите пожалуйста..
Сборка PW, на тачке 4 ГБ ОЗУ
 
а что Коля(факстрод)по этому поводу говорит?)ну и побольше информации(как сборка коннектится к тачке?по локалке или через внешку)какая ос на машинке, какая версия мускула, конфиги мускула, логи ошибок, скрины. Может привязка у него такая стала...
 
а что Коля(факстрод)по этому поводу говорит?)ну и побольше информации(как сборка коннектится к тачке?по локалке или через внешку)какая ос на машинке, какая версия мускула, конфиги мускула, логи ошибок, скрины. Может привязка у него такая стала...
думаю то шарная пв

после изменений конфигов, мускл хоть перезапускал?
пробуй ставить max_user_connections = 0 (без ограничений)
 
Последнее редактирование:
set-variable = max_connections= 0 *(не ограниченно)


[mysqld]
max_connections = 500
key_buffer = 16M
myisam_sort_buffer_size = 64M
join_buffer_size = 1M
read_buffer_size = 1M
sort_buffer_size = 2M
table_cache = 1024
thread_cache_size = 64
wait_timeout = 14400
connect_timeout = 10
max_allowed_packet = 16M
max_connect_errors = 10
query_cache_limit = 1M
query_cache_size = 32M
query_cache_type = 1
skip-innodb

[mysqld_safe]
open_files_limit = 8192

[mysqldump]
quick
max_allowed_packet = 16M

[myisamchk]
key_buffer = 64M
sort_buffer = 64M
read_buffer = 16M
write_buffer = 16M


попробуйте поставить такие значения или поменьше - работать будет медленнее, зато и стабильнее. В двух словах, эти сообщения не ошибка, а констатация факта, что MYSQL сервер выключается и принудительно выкидывает пользователей. А вот почему он выключается... Можно долго гадать, но лучше обновить сразу, а потом подправить конфиг.
 
Последнее редактирование модератором:
Что означает ошибка Mysql error 1040: Too many connections? Это ошибка означает, что в данный момент исчерпан лимит на подключение к БД.
Появляется обычно там, где либо слишком сложные запросы (которые долго выполняются), либо там где много одновременных подключений. Ну, например, от 100 пользователей инициирован одновременный запрос к БД, как например в моем варианте. Ясно, что такое в реальном использовании делать нельзя, но для сбора статистики, мне это было нужно. Итак, как же быть?


А все очень просто:

Вариант А
В случае медленных запросов, оптимизируем их, добавляем индексы и т.д.

Вариант Б
Одновременные соединения. В этом случае распределяем их на разное время запуска, чтобы они были выполнены не в одинаковое время. Т.е. убрать вот такие варианты:


$otime = date('i');
while ( true ) {
if ( $otime != date('i') ) { mysql_query('SELECT 1'); $otime = date('i'); }
}
А может быть оптимизация кода Вам не подойдет, тогда можно увеличить кол-во одновременных подключений. Это делается в файле конфигурации mysql, а именно /etc/my.cnf, вот в этой строчке:


max_connections = 250
Стандартное значение после установки 100. После внесения изменений, нужно рестартанутьдемона mysqld, делается это командой:


/etc/init.d/mysqld restart
и теперь можно проверить, все ли ок, sql запросом:


SHOW VARIABLES LIKE 'max_connections'
Вот и всё. Не забывайте делать резервные копии перед внесением изменений в конфигурационные файлы!
 
Последнее редактирование:
может у тебя просто порт открыт для всех коннектов и тебе его просто тупо засирают?
 
PW не шарная, покупал у Фокса.
Я просто забыл убрать #
То есть было #max_connections = 100
Щас стоит max_connections = 999
Пока что все норм, но не знаю, возможно повторится и фишка не в этом была.
 
может у тебя просто порт открыт для всех коннектов и тебе его просто тупо засирают?
Порт 3306 ?
Вообще да, открыт для всех соединений, но как закрыть не знаю, потому что писал:
iptables -I INPUT -p tcp --dport 3306 -j DROP
iptables -I INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT
iptables -I INPUT -p tcp -s localhost --dport 3306 -j ACCEPT
iptables -I INPUT -p tcp -s ИП --dport 3306 -j ACCEPT
Потом это дело сохраняю iptables-save
А в итоге порт снова открыт для всех, не шарю я с иптеблс работать.
 
и зачем открывать для всех? открыл для сайта и себя и хватит, я очень таких админов люблю которые оставляют порт MySQL открытым, их сервера даже спрутом сложить можно
 
и зачем открывать для всех? открыл для сайта и себя и хватит, я очень таких админов люблю которые оставляют порт MySQL открытым, их сервера даже спрутом сложить можно
Ты вообще читал мой пост выше ? Не умею я работать с иптеблс, не выходит у меня открыть порт только для сайта и для себя.
Не хотят параметры ип теблс сохранятся через то, что я написал выше.
 
Ты вообще читал мой пост выше ? Не умею я работать с иптеблс, не выходит у меня открыть порт только для сайта и для себя.
Не хотят параметры ип теблс сохранятся через то, что я написал выше.
а от админа в чем проблема открыть и сохранить?погуглить на крайнях различные правила, собрать , что тебе надо в конце концов и пользоваться всю жизнь...
 
Ты вообще читал мой пост выше ? Не умею я работать с иптеблс, не выходит у меня открыть порт только для сайта и для себя.
Не хотят параметры ип теблс сохранятся через то, что я написал выше.
сам в айпитейблс полный ноль, готовых правил полно
 

Глянь тут

---- (не рекалама)

--- (не реклама)




 
Глянь тут

---- (не рекалама)

--- (не реклама)
В чем прикол писать не реклама?
 
  • Мне нравится
Реакции: zcxv
Назад
Сверху Снизу