[kapalı] çöktü olarak mysql tablo işaretlenmiş

3 Cevap php

Geçenlerde bir ajax tabanlı bir anlık mesajlaşma uygulaması yarattı ve bir süre çalıştırdıktan sonra ben çöktü ve tamir edilmelidir gibi bir hata [table] işaretlenir var. Bu nasıl olmuş olabilir ve nasıl tekrar oluyor önlenmesi hakkında nasıl gidiyor?

3 Cevap

O masada yazarken zamanların bu en MySQL Server bir çarpışma gerçekleşmesi. Sen Sonra çalıştırmak gerekebilir ... tablonun içeriğini kontrol edin ve sonuçta aslında kırık ya da değil olup olmadığını bildiririz ki, CHECK TABLE <databasename>.<tablename> çalıştırmayı denemelisiniz REPAIR TABLE <databasename>.<tablename>. Ayrıca that page Neler olduğunu biraz okumak isteyebilirsiniz.

Tablo MyISAM motorunu kullanıyorsa, siz de (seni that page geri bakmalıdır saymak durumda) MySQL dağıtım myisamchk aracını kullanabilirsiniz.

http://www.pantz.org/software/mysql/fixingmysqlcrashedtables.html

Referans için .. Bu komut birçok vardı, benim çöktü tabloları sabit:

sudo mysqlcheck --auto-repair -A -u root -p

Bu bir cevap değil ama ben bu ile gelmiş bir örnek başkalarına yardımcı olabilir:

function mysql_check_and_repair($array){
    if( is_array( $array ) ) {
        foreach( $array as $table_name ) {
            $q = mysql_query( "CHECK TABLE `$table_name` QUICK" ) or die( mysql_error() );
            $a = mysql_fetch_array( $q );
            if( $a['Msg_text'] != 'Table is already up to date' && $a['Msg_text'] != 'OK' ) {
                log_error( $a['Msg_text'] );
                mysql_query( "REPAIR TABLE `$table_name`" ) or die( mysql_query() );    
            }
        }
    }else{
        return false;
    }
}

Kimseye onlar bunu gerçekleştirmek gerektiğini düşünüyorum (tüm güncelleştirmeleri veritabanına yapılıyor önce şu anda yapıyor ama her istek 2 saniye) nasıl ofter herhangi bir göstergeye sahiptir