Can't connect to mysql

Status
Not open for further replies.

san4e3

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

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

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

valentin528

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

san4e3

Любопытный
Пользователь
May 16, 2012
87
10
28
36
Была убунта сервер 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; 
 
?>
 

san4e3

Любопытный
Пользователь
May 16, 2012
87
10
28
36
в /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

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

san4e3

Любопытный
Пользователь
May 16, 2012
87
10
28
36
/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

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

san4e3

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

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

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

lsroot

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

san4e3

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

lsroot

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

san4e3

Любопытный
Пользователь
May 16, 2012
87
10
28
36
и вот ещё, что выдаст кома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

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

уже зае...
 

Juzilkree

Злостный отаку
Staff member
Администратор
Nov 29, 2012
1,983
744
158
38
www.dyndev.ru
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1209/mysqld

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

san4e3

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

ServerName localhost а что будет если прописать вместо localhost свой выделеный ip адрес ?
 
Status
Not open for further replies.

Members online

No members online now.

Latest resources

Forum statistics

Threads
3,852
Messages
21,330
Members
7,963
Latest member
xiaosida