mysql_select_db - дохнет. :(

kvn

programmer
mysql_select_db - дохнет. :(

Привет всем!
есть такой скриптик, который пишет статистику:
PHP:
fucntion to_stat(....parameters...) {
        $mysql_host = 'localhost';
        $mysql_db   = 'logo';
        $mysql_user = 'user';
        $mysql_pass = 'password';

        if ($conn = @mysql_connect($mysql_host, $mysql_user, $mysql_pass)) {
            mysql_select_db($mysql_db) or stat_error('selecting DB '.$param1 . ', cant select DB: - ' .@mysql_error(), 1);

            $sql = "INSERT ...with incoming parameters...";
            if (@mysql_query($sql)) {
            return 0;
            } else {
             stat_error('sql '.$param1 . ', bad query', $sql . ' - ' .@mysql_error(), 1);
             return 2; 
            }
        } else {
                // some shit happens.
                $sql = "the same query";
                backup_query($sql);
                stat_error('cant connect'.$param1 , @mysql_error());
                return 1; // can't connect
        }

            
}

function stat_error($subj = "", $message = "", $code = 0) {
   // send errors to e-mail.
   @mail($email, 'Error in SMS: '.$subj, $message);
}

        function backup_query($sql = ''){
        // backup query to file, if some shit happens
                $backup_sql_file = '/stat_errors_backup.sql.txt';

                $fp = @fopen($backup_sql_file, 'a+');
                if (!is_resource($fp)) {
                        stat_error(...);
                }
                if (!fwrite($fp, $sql.";\n")) {
                        stat_error()
                }
                @fclose($fp);
        }
Извините за длинный сорс, ужал, как мог, но чтобы была полная картина.
Как видите скриптик простой, работал как часики, но в последнее время на него нагрузка немного больше чем была раньше. А именно: где-то ~300 rph, -> ~6 запросов/мин.
будет расти. + на этой же БД сайт+веб-админ, ну +еще запросов 5-6 может 10 в минуту, но это же не много.. (как для mysql).

И стал возникать странный глюк, причем не закономерно, т.е. иногда:
обламываеться в строке mysql_select_db($mysql_db) or stat_error('selecting DB '.$param1 . ', cant select DB: - ' .@mysql_error(), 1);
т.е. на мыло приходит такой мессаг:
Subj: Error in DB: with param 1, cant select DB: - Unknown database 'logo'
Body: 1

И соответственно на mysql_query тоже обламываеться, исходя из предыдущей ошибки,
Body:
INSERT (...) VALUES (...) - No Database Selected

Это возникает уже где-то 1-2 раза в день, и довольно начинает напрягать.
Может кто-то сталкивался...хелп. А то не знаю уже что и думать...

Спасибо.
 

kvn

programmer
Сорри, забыл сказать:
>mysql -V
mysql Ver 11.18 Distrib 3.23.51, for portbld-freebsd4.6 (i386)

php 4.3.0.

По поводу логов - спасиб, че то я стормозил по этому поводу.
буду копать.
 

Апельсин

Оранжевое создание
> Может кто-то сталкивался...хелп.
в списке рассылки у них время от времени такое проскакиевает. Возникает только на FreeBSD. Насколько я помню лечится сборкой MySQL сервера с
-DHAVE_BROKEN_REALPATH.
 

kvn

programmer
Что-то в логах самого mysqld есть ?
неа.

021207 13:37:33 mysqld started
Cannot initialize InnoDB as 'innodb_data_file_path' is not set.
If you do not want to use transactional InnoDB tables, add a line
skip-innodb
to the [mysqld] section of init parameters in your my.cnf
or my.ini. If you want to use InnoDB tables, add for example,
innodb_data_file_path = ibdata1:30M:autoextend
But to get good performance you should adjust for your hardware
the InnoDB startup options listed in section 2 at
http://www.innodb.com/ibman.html
/usr/local/libexec/mysqld: ready for connections

ИнноДБ не используем.
 

si

Administrator
3.23.51

Не мешало бы обновить, для очистки совести
 

kvn

programmer
так и сделаем.
спасибо.
Отдельное спасибо Апельсинке за -DHAVE_BROKEN_REALPATH, преклоняюсь.
 
Сверху