SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 28.09.2009 12:03:25

kpachbiu
Участник
Зарегистрирован: 28.09.2009
Сообщений: 9

max_connections ошибки MySQL

Уважаемые господа!

Помогите пожалуйста в решении моей проблемы!
У меня есть динамический сайт с авторизацией, почти каждая страница включает в себя строки include("inc/db_connect.php");

Вот db_connect.php

<?php
//if(!defined("INSIDE")){ die("attemp hacking");}
$admin_login="*****";   
$admin_pass="******";   

$img_server="/img";
$now = time();

$link=mysql_pconnect("localhost","****","*****");
mysql_select_db("*****",$link) or die ("Ошибка соединения с БД!");
mysql_query("SET CHARSET cp1251");

$uri=GetEnv("REQUEST_URI");
$uri=explode("fable.hut.ru,$uri);

$ips=GetEnv("HTTP_X_REAL_IP");

$ip=explode(".",$ips);

extract($_POST);
extract($_GET);
extract($_COOKIE);

if (($ip[0] == 62 && $ip[1] == 183 && $ip[2] == 53) || $ips=="80.66.247.94" || $ips=="89.189.141.71") {
        echo"You are died wink Go back wink";
        exit;
}
?>



Я предполагаю что у меня база данных накапливает соединения и "падает". А вот как это исправить не знаю! Помогите!

Неактивен

 

#2 28.09.2009 17:28:48

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: max_connections ошибки MySQL

$link=mysql_pconnect("localhost","****","*****");

А зачем вы используете постоянное соединение? Используйте mysql_connect

Неактивен

 

#3 28.09.2009 18:28:46

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: max_connections ошибки MySQL

Дайте я немного позащищаю pconnect smile pconnect — очень хорошая и нужная
штука, но надо уметь ее готовить. В частности, mysql.max_persistent Вас спасет.
А со стороны MySQL посмотрите на max_connections.

Неактивен

 

#4 28.09.2009 23:23:44

kpachbiu
Участник
Зарегистрирован: 28.09.2009
Сообщений: 9

Re: max_connections ошибки MySQL

#1135 - Can't create a new thread (errno 12); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug

Конкретно вот такую ошибку мне выдает база данных, после использования сайта минут где то через 40!

В файле my.cnf строка max_connections у меня выставлено 500

В каждом файле где у меня прописано include("inc/db_connect.php");
В конце я добавляю строчку <? mysql_close($link); ?>
Правильно?!

mysql.max_persistent Где искать этот параметр?

Задача сделать чтобы база данных сайта не падала каждые 40 минут!

Неактивен

 

#5 28.09.2009 23:29:44

kpachbiu
Участник
Зарегистрирован: 28.09.2009
Сообщений: 9

Re: max_connections ошибки MySQL

Я пробовал использовать mysql_connect,  в этом случае база "падает" быстрее и уже с другой ошибкой!

Неактивен

 

#6 28.09.2009 23:37:47

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: max_connections ошибки MySQL

А какой смысл использовать постоянные соединения если вы хотите их закрывать в конце работы каждого скрипта?
Кстати, mysql_close не закрывает постоянные соединения.

Неактивен

 

#7 28.09.2009 23:38:45

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: max_connections ошибки MySQL

kpachbiu написал:

Я пробовал использовать mysql_connect,  в этом случае база "падает" быстрее и уже с другой ошибкой!

Так напишите, что за ошибка возникает в этом случае.

Неактивен

 

#8 29.09.2009 01:08:26

kpachbiu
Участник
Зарегистрирован: 28.09.2009
Сообщений: 9

Re: max_connections ошибки MySQL

Включил базу и сайт сейчас когда появится ошибка напишу ....

Неактивен

 

#9 29.09.2009 15:02:42

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: max_connections ошибки MySQL

kpachbiu написал:

mysql.max_persistent Где искать этот параметр?

Я там специально ссылки прописываю, чтобы искать было проще wink

Неактивен

 

#10 29.09.2009 23:25:44

kpachbiu
Участник
Зарегистрирован: 28.09.2009
Сообщений: 9

Re: max_connections ошибки MySQL

Еще один вопросик

Есть код PHP:

<?
if ($Attack) {
       
                if (empty($login)) $msg = "Укажите логин!";
                else {
                        $chl=mysql_fetch_array(mysql_query("SELECT 'id', 'v_time', 'k_time', 'user', 'room', 'level', 'hp_now', 'battle', 'last_battle', 'vitality', 'travma', 'rank', 'lpv', 'rase_skill' FROM `players` WHERE 'user'='".addslashes($login)."'"));

                        if ($chl['user'] == $stat['user']) $msg="Нападение на самого себя - это уже мазохизм...";
                        elseif ($chl['rank'] !=60) $msg="Персонаж <u>$login</u> не является ботом!";
                        elseif ($stat['travma']>$now) $msg="С травмой в бой нельзя!";
                        elseif ($stat['level']!=$chl['level']) $msg="Выбери равного противника!";
                        elseif ($chl['room']!=2) $msg="Для нападния Вам необходимо находится в одной комнате!";
                        elseif ($stat['hp_now']<(($stat['hp']+$stat['vitality']*5)*0.33)) $msg="Вы слишком ослаблены для боя!";
                        elseif ($chl['hp_now'] <= 5  && $chl['rank']<>60) $msg="Персонаж <u>$login</u> слишком слаб для поединка!";
                        elseif (((time()-$chl['lpv'])<10) && ($chl['battle'] == $chl['last_battle'] || !$chl['battle']) && $chl['rank']==60) $msg="Бот <u>".$chl['user']."</u> еще не восстановил свой уровень жизни!";

                        else {

                                require_once("inc/chat/functions.php");
                                insert_msg("Разъярённый <b><u>$stat[user]</u></b> собрался с силами и напал на Вас!","","","1",$chl['user'],"",$chl['room']);

                        $battime="$now"; 
и так далее ?>

Есть HTML форма:

<b>Действия</b><HR color=silver>

<input type=button class=input value='Нападение' style='WIDTH: 120px' onclick=\"javascript:ShowForm('Нападение','trening.php?Attack=$now','','','1','attack','1','0');\">


Почему то когда нападаешь на бота пишут что - Персонаж Стражник не является ботом!
Хотя ранг у него выставлен 60

НЕ могу понять в чем ошибка!?

Неактивен

 

#11 29.09.2009 23:45:18

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: max_connections ошибки MySQL

Ошибка в коде big_smile

s/chl/stat/ в нужном месте; Ну и, конечно, это ни разу не связано с MySQL. И даже с пхп не связано.

Неактивен

 

#12 29.09.2009 23:52:41

kpachbiu
Участник
Зарегистрирован: 28.09.2009
Сообщений: 9

Re: max_connections ошибки MySQL

C Mysql свзязано в самом начале! (просто не весь код привел)

в начале следующее:

include("inc/db_connect.php");

$stat = mysql_fetch_array(mysql_query("SELECT *  FROM `players` WHERE `user` = '".$_COOKIE['user']."' AND `pass` = '".$_COOKIE['pass']."' LIMIT 1"));
  mysql_query("SET CHARSET cp1251");

Почему с пхп не связано?
$chl, $stat не в том месте стоят?

Неактивен

 

#13 30.09.2009 10:02:10

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: max_connections ошибки MySQL

paulus написал:

Дайте я немного позащищаю pconnect smile pconnect — очень хорошая и нужная
штука, но надо уметь ее готовить.

Правильно ли я понимаю, что постоянное соединение действует только в рамках дочернего процесса апача, и при обработке следующего http запроса другим дочерним процессом придется устанавливать новое постоянное соединение?

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

Реально ли улучшение производительности за счет использования pconnect? Я полагал, что это бесполезная штука, но задумавшись сейчас понял, что не знаю источника этого сокровенного знания smile

Неактивен

 

#14 30.09.2009 10:40:53

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: max_connections ошибки MySQL

2 Кпачбиу:
Если в тексте программы где-то используется MySQL, это не значит, что
вопрос по MySQL. А вопросы по пхп имеет смысл задавать на webew.ru.

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

Улучшение производительности — разумеется, реальное на большом количестве
запросов. С другой стороны, в приложении, в котором не работает логика, тюнить
количество запросов — дело, наверное, излишнее wink

Неактивен

 

#15 30.09.2009 23:06:54

kpachbiu
Участник
Зарегистрирован: 28.09.2009
Сообщений: 9

Re: max_connections ошибки MySQL

Спасибо за ссылку!

Неактивен

 

#16 30.09.2009 23:08:34

kpachbiu
Участник
Зарегистрирован: 28.09.2009
Сообщений: 9

Re: max_connections ошибки MySQL

Похоже что информаци из базы данных не передается!!

Я пробую записать после $chl=mysql_fetch_array(....) строку
                                       print_r($chl);

И никакая информация о значениях массива не выводиться!!!!!

Неактивен

 

#17 01.10.2009 14:44:52

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: max_connections ошибки MySQL

Две функции в PHP неспроста — как раз для того, чтобы отслеживать ошибки между
ними. Вопросы по пхп таки надо задавать на webew.ru.

Неактивен

 

#18 01.10.2009 17:24:16

kpachbiu
Участник
Зарегистрирован: 28.09.2009
Сообщений: 9

Re: max_connections ошибки MySQL

Спасибо я именно так и сделал!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson