Can't connect to mysql

Статус
В этой теме нельзя размещать новые ответы.

san4e3

Любопытный
Пользователь
16 Май 2012
87
10
28
33
Серевер на Debian 6 пока что на виртуальной машине, имеет свой отдельный ip который доступен с интернета.
На нем собственно и стоит сервер PW.
Есть так же отдельно хостинг, где размещен сайт сервера написан на php, на нем есть страничка регистрации, конфиги прописаны правельно.
После запуска машины и самого сервера, работает все. без каких либо проблем.Регистрация на сайте так же работает нормально, и регистрирует пользователей.
Но по истечению некоторого времени, перейдя на страницу регистрации и попытавшись зарегистрироваться выдает ошибку Can't connect to MySQL , для того что бы регистрация начала опять работать приходиться через консоль пользоваться командой /etc/init.d/mysql restart (перезапускать mysql) после этого рега опять наччинает пахать. Но спустя некоторое время опять то же самое повторяеться.....

Права на удаленное подключение пользователя к mysql выставлены.

Как быть в этой ситуации? нуждаюсь в неосильной помощи, так как это длиться постоянно.
 

valentin528

Любопытный
Пользователь
23 Июн 2012
243
1
28
скорей всего че то мешает работе mssql что приводет к ошибке,попробуй на ubuntu поставь
а в файлах реги ничего такого не прописано что к падению базы приводит?
 

san4e3

Любопытный
Пользователь
16 Май 2012
87
10
28
33
Была убунта сервер 10.04/12.04 и была та же самая проблема.
Вот Код сос страницы регистрации:
PHP:
<? 
    include ".config.php";
 
    $Data = '<form action=?page=10 method=post>
    <center>Логин:<br>
    <font color="#FF0000">*</font><input type=text name=login><br>
    Пароль:<br>
    <font color="#FF0000">*</font><input type=password name=passwd><br>
    Повтор пароля:<br>
    <font color="#FF0000">*</font><input type=password name=repasswd><br>
    Email:<br>
    <font color="#FF0000">*</font><input type=text name=email><br><br>
    <img src="captcha/img.php?'.session_name()."=".session_id().'"><br>
    Введите текст с картинки:<br>
    <font color="#FF0000">*</font><input type=text name=captcha><br>
    <input type=submit name=submit value="Регистрация"><br>
    <br><a href="/?page=12"><span class="green">Смена пароля от игрового аккаунта</span></a></center>
    </form>';
     
function db_mssql_check_xss () {
    $url = html_entity_decode(urldecode($_SERVER['QUERY_STRING']));
    if ($url) {
        if ((strpos($url, '<') !== false) ||
            (strpos($url, '>') !== false) ||
            (strpos($url, '"') !== false) ||
            (strpos($url, '\'') !== false) ||
            (strpos($url, './') !== false) ||
            (strpos($url, '../') !== false) ||
            (strpos($url, '--') !== false) ||
            (strpos($url, '.php') !== false)
          )
        {
            die("Попытка взлома!");
        }
    }
    $url = html_entity_decode(urldecode($_SERVER['REQUEST_URI']));
    if ($url) {
        if ((strpos($url, '<') !== false) ||
            (strpos($url, '>') !== false) ||
            (strpos($url, '"') !== false) ||
            (strpos($url, '\'') !== false)
          )
        {
            die("Попытка взлома!");
        }
    }
 
}
 
/*
    Мощная функция обработки данных,
    защищает от XSS и SQL Injection
    поддержка защиты для MSSQL серверов
*/
 
function office_secure($check_string)
{
    $ret_string = $check_string;
    $ret_string = htmlspecialchars ($ret_string);
    $ret_string = strip_tags ($ret_string);
    $ret_string = trim ($ret_string);
    $ret_string = str_replace ('\\l', '', $ret_string);
    $ret_string = str_replace (' ', '', $ret_string);
    $ret_string  = str_replace("'", "", $ret_string );
    $ret_string  = str_replace("\"", "",$ret_string );
    $ret_string  = str_replace("--", "",$ret_string );
    $ret_string  = str_replace("#", "",$ret_string );
    $ret_string  = str_replace("$", "",$ret_string );
    $ret_string  = str_replace("%", "",$ret_string );
    $ret_string  = str_replace("^", "",$ret_string );
    $ret_string  = str_replace("&", "",$ret_string );
    $ret_string  = str_replace("(", "",$ret_string );
    $ret_string  = str_replace(")", "",$ret_string );
    $ret_string  = str_replace("=", "",$ret_string );
    $ret_string  = str_replace("+", "",$ret_string );
    $ret_string  = str_replace("%00", "",$ret_string );
    $ret_string  = str_replace(";", "",$ret_string );
    $ret_string  = str_replace(":", "",$ret_string );
    $ret_string  = str_replace("|", "",$ret_string );
    $ret_string  = str_replace("<", "",$ret_string );
    $ret_string  = str_replace(">", "",$ret_string );
    $ret_string  = str_replace("~", "",$ret_string );
    $ret_string  = str_replace("`", "",$ret_string );
    $ret_string  = str_replace("%20and%20", "",$ret_string );
    $ret_string = stripslashes ($ret_string);
    return $ret_string;
}
/*
    Обработка глобального POST массива
    защищает от XSS и SQL Injection
    поддержка защиты для MSSQL серверов
*/
function check_sql_inject()
  {
    $badchars = array("--","truncate","tbl_","exec","call",";","'","*","/"," \ ","drop",
        "select","update","delete","where", "-1", "-2", "-3","-4", "-5", "-6", "-7", "-8", "-9");
    foreach($_POST as $value)
    {
        foreach($badchars as $bad)
        {
            if(strstr(strtolower($value),$bad)<>FALSE)
            {
                die('Использованы недопустимые символы, <a href="'.$_SERVER['PHP_SELF'].'">вернитесь назад</a>');
            }
        }
    }
  }
 
check_sql_inject();
db_mssql_check_xss ();   
 
 
    if (isset($_POST['login']))
        {
            $Link = MySQL_Connect($DBHost, $DBUser, $DBPassword) or die ("Can't connect to MySQL");
            MySQL_Select_Db($DBName, $Link) or die ("Database ".$DBName." do not exists.");
         
            $Login = $_POST['login'];
            $Pass = $_POST['passwd'];
            $Repass = $_POST['repasswd'];
            $Email = $_POST['email'];
            $Capch = $_POST['captcha'];
        $Capch_img = $_SESSION['captcha_keystring'];
 
            $Login = StrToLower(Trim($Login));
            $Pass = StrToLower(Trim($Pass));
            $Repass = StrToLower(Trim($Repass));
            $Email = Trim($Email);
 
        if (empty($Login) || empty($Pass) || empty($Repass) || empty($Email))
            {
                echo "Все поля отмеченные <font color=red>*</font> обязательны к заполнению.";
            }
     
        elseif (ereg("[^0-9a-zA-Z_-]", $Login, $Txt))
            {
                echo "Неправильный формат логина.";
            }
         
        elseif (ereg("[^0-9a-zA-Z_-]", $Pass, $Txt))
            {
                echo "Неправильный формат пароля."; 
            }
     
        elseif (ereg("[^0-9a-zA-Z_-]", $Repass, $Txt))
            {
                echo "Неправильный формат повтора пароля."; 
            }
        elseif (StrPos('\'', $Email))
            {
                echo "Неправильный формат Email."; 
            } 
        else
            {
                $Result = MySQL_Query("SELECT name FROM users WHERE name='$Login'") or ("Can't execute query.");
             
        if (MySQL_Num_Rows($Result))
            {
                echo "Логин <b>".$Login."</b> уже используется.";
            }
     
        elseif ((StrLen($Login) < 4) or (StrLen($Login) > 10))
     
            {
                echo "Логин должен содержать больше 4 и не более 10 символов..";
            }
         
        elseif ((StrLen($Pass) < 4) or (StrLen($Pass) > 10))
     
            {
                echo "Пароль должен содержать больше 4 и не более 10 символов.";
            }
         
        elseif ((StrLen($Repass) < 4) or (StrLen($Repass) > 10))
            {
                echo "Повтор пароля должен содержать больше 4 и не более 10 символов.";
            }
         
        elseif ((StrLen($Email) < 4) or (StrLen($Email) > 25))
            {
                echo "Email должен содержать больше 4 и не более 25 символов.";
            }
     
        elseif ($Pass != $Repass)
            {
                echo "Пароли не совпадают.";
            }
 
        elseif ($Capch_img != $Capch)
            {
                echo "Неправильный код с картинки";
            }
 
        else
            {
     
                // $Salt = $Login.$Pass;
                // $Salt = md5($Salt);
                // $Salt = "0x".$Salt;
 
                $Salt = "0x".md5($Login.$Pass);
                MySQL_Query("call adduser('$Login', '$Salt', '0', '0', '0', '0', '$Email', '0', '0', '0', '0', '0', '0', '0', '', '', '$Salt')") or die ("Can't execute query.");
        $mysqlresult=MySQL_Query("select * from `users` WHERE `name`='$Login'");
        $User_ID=MySQL_result($mysqlresult,0,'ID');
        MySQL_Query("call usecash('$User_ID',1,0,1,0,500000,1,@error)") or die ("usecash failed!");
                echo "Аккаунт <b>".$Login.""."</b> успешно зарегестрирован.";
             
            }     
        } 
    }
 
    echo $Data; 
 
?>
 

lsroot

Новичок
Пользователь
7 Апр 2012
19
1
3
47
хм....а чё лог говорит /var/log/mysql и /var/log/apache2/error.log ?
 

Juzilkree

Злостный отаку
Команда форума
Администратор
29 Ноя 2012
1.937
727
158
35
www.dyndev.ru
на убунту вообще ничего не ставь.
как выше писал lsroot, логи надо читать.
 

san4e3

Любопытный
Пользователь
16 Май 2012
87
10
28
33
в /var/log/mysql пусто.
/var/log/ahache2/error.log ниже содержимое файла:
PHP:
[Wed Aug 29 14:27:47 2012] [notice] Apache/2.2.16 (Debian) configured -- resuming normal operations
[Wed Aug 29 14:29:00 2012] [notice] caught SIGTERM, shutting down
[Wed Aug 29 14:29:04 2012] [notice] Apache/2.2.16 (Debian) configured -- resuming normal operations
[Wed Aug 29 14:29:08 2012] [notice] Graceful restart requested, doing restart
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Wed Aug 29 14:29:08 2012] [notice] Apache/2.2.16 (Debian) configured -- resuming normal operations
[Wed Aug 29 14:29:12 2012] [notice] Graceful restart requested, doing restart
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Wed Aug 29 14:29:12 2012] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze14 with Suhosin-Patch configured -- resuming normal operations
[Wed Aug 29 14:29:48 2012] [notice] Graceful restart requested, doing restart
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Wed Aug 29 14:29:48 2012] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze14 with Suhosin-Patch configured -- resuming normal operations
[Wed Aug 29 14:29:49 2012] [notice] caught SIGTERM, shutting down
[Wed Aug 29 14:29:50 2012] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze14 with Suhosin-Patch configured -- resuming normal operations
[Wed Aug 29 14:30:01 2012] [notice] Graceful restart requested, doing restart
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Wed Aug 29 14:30:01 2012] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze14 with Suhosin-Patch configured -- resuming normal operations
[Wed Aug 29 15:09:23 2012] [notice] caught SIGTERM, shutting down
[Wed Aug 29 15:09:50 2012] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze14 with Suhosin-Patch configured -- resuming normal operations
[Wed Aug 29 15:10:15 2012] [error] [client 203.91.121.14] File does not exist: /var/www/manager
[Wed Aug 29 17:32:46 2012] [error] [client 255.255.255.255] File does not exist: /var/www/favicon.ico, referer: http://my_ip/
[Wed Aug 29 17:32:51 2012] [error] [client 255.255.255.255] File does not exist: /var/www/images, referer: http://my_ip/site/
[Wed Aug 29 17:32:51 2012] [error] [client 255.255.255.255] File does not exist: /var/www/site/menu_superior.css, referer: http://my_ip/site/
[Wed Aug 29 17:32:57 2012] [error] [client 255.255.255.255] File does not exist: /var/www/images, referer: http://my_ip/site/?page=10
[Wed Aug 29 17:32:57 2012] [error] [client 255.255.255.255] File does not exist: /var/www/site/menu_superior.css, referer: http://my_ip/site/?page=10
[Wed Aug 29 17:32:58 2012] [error] [client 255.255.255.255] File does not exist: /var/www/images, referer: http://my_ip/site/?page=10
[Wed Aug 29 17:32:58 2012] [error] [client 255.255.255.255] File does not exist: /var/www/site/menu_superior.css, referer: http://my_ip/site/?page=10
[Wed Aug 29 17:40:52 2012] [notice] caught SIGTERM, shutting down
[Wed Aug 29 17:41:31 2012] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze14 with Suhosin-Patch configured -- resuming normal operations
 

lsroot

Новичок
Пользователь
7 Апр 2012
19
1
3
47
для начала всё же пропишите в /etc/apache2/httpd.conf ServerName localhost, или петлю 127.0.0.1 после апач перезапустите и если можно лог в студию, но кстати случай довольно интересный не первый раз уже слышу про такого рода проблему, нужно искать решение....
 

san4e3

Любопытный
Пользователь
16 Май 2012
87
10
28
33
в том файле было пусто, прописал ServerName localhost или не так?
Перезапустил апатч.
 

lsroot

Новичок
Пользователь
7 Апр 2012
19
1
3
47
всё верно, можно лог поглядеть от апача, какие ошибки ушли
 

san4e3

Любопытный
Пользователь
16 Май 2012
87
10
28
33
/var/log/ahache2/error.log
PHP:
[Wed Aug 29 17:40:52 2012] [notice] caught SIGTERM, shutting down
[Wed Aug 29 17:41:31 2012] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze14 with Suhosin-Patch configured -- resuming normal operations
[Wed Aug 29 21:32:38 2012] [notice] Graceful restart requested, doing restart
[Wed Aug 29 21:32:38 2012] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze14 with Suhosin-Patch configured -- resuming normal operations
[Wed Aug 29 21:43:22 2012] [notice] caught SIGTERM, shutting down
[Wed Aug 29 21:43:23 2012] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze14 with Suhosin-Patch configured -- resuming normal operations
[Wed Aug 29 21:44:29 2012] [error] [client ip_clienta] File does not exist: /var/www/favicon.ico, referer: http://ip_servera/
 

lsroot

Новичок
Пользователь
7 Апр 2012
19
1
3
47
:)ну вроде всё хорошо, можно ещё вот что учудить ap-get upgrade php5 | apt-get upgrade mysql-server | apt-get upgrade php5-mysql а так вроде всё, должно работать
 

san4e3

Любопытный
Пользователь
16 Май 2012
87
10
28
33
розтолкуй пожалуйста...
для чего и что даст/дало то что я прописал ServerName localhost и чего етого нету изначально после установки ОС.

И что дадут данные команды: ap-get upgrade php5 | apt-get upgrade mysql-server | apt-get upgrade php5-mysql

Примерно догадываюсь, но все же хотелось бы понять на доступных мне словах, так как с линуксом дружу недавно.
--- добавлено: Aug 29, 2012 7:23 PM ---
можно даже в скайпе. что бы не печатать много.
 

lsroot

Новичок
Пользователь
7 Апр 2012
19
1
3
47
ServerName localhost прописывается что бы привязать сервак к локальному адресу ну или к IP, по умолчанию данный файл пустой, нужно ручками объяснить серверу что от него хотят и какой у него адрес в нашем случае локалка, команды это обновление php и mysql :) и ни чего больше, последнее время, что то обновы стали делать под всё это дело, частенько.
p.s по большому счёту ServerName localhost не меняет ни чего, просто убираются ошибочки, с которыми в принципе можно жить, ну лучше прописать, глаз радует отсутствие ошибок ;)
 

san4e3

Любопытный
Пользователь
16 Май 2012
87
10
28
33
Хорошо, а если в моем случае, Debian тобишь сервер имеет свой выделеный ip. Надо прописывать ServerName IP
И если к этому же серверу есть внешнее подключение к mysql базе (новый пользователь создан и прописан ip адрес который имеет на это провао), тоже что то надо править?
--- добавлено: Aug 29, 2012 7:34 PM ---
Я вот нервно сижу и тыкаю на той странице регистрации, в надажде что ошибка коннекта не появиться.....
--- добавлено: Aug 29, 2012 7:35 PM ---
И неужели все кто ставят ОС под сервер PW проделывают такую манипуляцию....?
 

lsroot

Новичок
Пользователь
7 Апр 2012
19
1
3
47
хм...я вот подумал вот про что - может mysql тупо не хватает время, вернее закрывает сессию на коннект в /etc/php5/apache2/php.ini попробовать параметр тайм-аута default_socket_timeout = 60 поставить не 60 сек. а допустим 120 или 180 сек, и поглядеть что будет
и вот ещё, что выдаст комаyда netstat -ntpl | grep mysql ?
 

san4e3

Любопытный
Пользователь
16 Май 2012
87
10
28
33
и вот ещё, что выдаст комаyда netstat -ntpl | grep mysql ?

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1209/mysqld

Зашел в webmin по адресу Службы - Сервер баз данных MySQL - Database Connections
а здесь вот такая таблица.
1.jpg
что бы оно значило?
 

san4e3

Любопытный
Пользователь
16 Май 2012
87
10
28
33
На протяжении 3-х часов работало нормально, сейчас опять ошибка Can't connect to mysql

уже зае...
 

Juzilkree

Злостный отаку
Команда форума
Администратор
29 Ноя 2012
1.937
727
158
35
www.dyndev.ru

san4e3

Любопытный
Пользователь
16 Май 2012
87
10
28
33
тогда чего же возникает такая ошибка....:(
 

san4e3

Любопытный
Пользователь
16 Май 2012
87
10
28
33
ServerName localhost прописывается что бы привязать сервак к локальному адресу ну или к IP, по умолчанию данный файл пустой, нужно ручками объяснить серверу что от него хотят и какой у него адрес в нашем случае локалка, команды это обновление php и mysql :) и ни чего больше, последнее время, что то обновы стали делать под всё это дело, частенько.
p.s по большому счёту ServerName localhost не меняет ни чего, просто убираются ошибочки, с которыми в принципе можно жить, ну лучше прописать, глаз радует отсутствие ошибок ;)

ServerName localhost а что будет если прописать вместо localhost свой выделеный ip адрес ?
 
Статус
В этой теме нельзя размещать новые ответы.

G2A

Пользователи онлайн

Сейчас на форуме нет ни одного пользователя.

Последние ресурсы

Статистика форума

Темы
3.835
Сообщения
21.242
Пользователи
7.465
Новый пользователь
Edvard