Maximum der Session Table ändern!?

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Schalte mal das Debugging an (constants.php), dann kommt eine ausführlichere Fehlermeldung.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
adjustMan
Beiträge: 205
Registriert: Sa 18.Sep, 2004 00:03

Beitrag von adjustMan »

phpBB : Critical Error

Error clearing sessions table

DEBUG MODE

SQL Error : 1064 Fehler in der Syntax bei 'ORDER BY session_start LIMIT 50' in Zeile 1.

SELECT * FROM phpbb_sessions

Line : 279
File : /var/www/web12/html/community/common.php

Das war genau bei 250 Einträgen, ich sass dabei. ;)
cu aM
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ändere mal in der betreffenden Abfrage "LIMIT 50" in "LIMIT 0,50"
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
adjustMan
Beiträge: 205
Registriert: Sa 18.Sep, 2004 00:03

Beitrag von adjustMan »

[quote="oxpus - Do 23.Dez, 2004 10:45";p="18984"]Ändere mal in der betreffenden Abfrage "LIMIT 50" in "LIMIT 0,50"[/quote]
ist das Wissen oder ein Tipp ins Blaue :)
cu aM
easygo
Beiträge: 155
Registriert: Fr 22.Okt, 2004 13:20
Kontaktdaten:

Beitrag von easygo »

[quote="adjustMan - Mi 22.Dez, 2004 21:46";p="18963"]Das war genau bei 250 Einträgen, ich sass dabei. ;)[/quote]

Hehe... da dran wirds gelegen haben ^^ :D

sql Tabellentyp MyISAM oder HEAP, wie denn jetzt?
Diskutiere nie mit einem Idioten: Erst zieht er dich auf sein
Niveau runter und dort schl?gt er dich mit Erfahrung.
Benutzeravatar
adjustMan
Beiträge: 205
Registriert: Sa 18.Sep, 2004 00:03

Beitrag von adjustMan »

@easygo => MyISAM
cu aM
easygo
Beiträge: 155
Registriert: Fr 22.Okt, 2004 13:20
Kontaktdaten:

Beitrag von easygo »

Ok steht in der config extension mysql4 oder mysql oder ?
Diskutiere nie mit einem Idioten: Erst zieht er dich auf sein
Niveau runter und dort schl?gt er dich mit Erfahrung.
Benutzeravatar
adjustMan
Beiträge: 205
Registriert: Sa 18.Sep, 2004 00:03

Beitrag von adjustMan »

[quote="easygo - Fr 24.Dez, 2004 08:46";p="19028"]Ok steht in der config extension mysql4 oder mysql oder ?[/quote]
mysql = ist mysql 3
cu aM
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

@adjustMan
LIMIT mit einem Startwert, hier also LIMIT 0, 50, produziert in der Regel weniger Fehler ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
easygo
Beiträge: 155
Registriert: Fr 22.Okt, 2004 13:20
Kontaktdaten:

Beitrag von easygo »

mysql3 ? dann würde ich mal auf "mysql" umstellen in
config.inc + weil schon installiert -> config.php

Könnte helfen, könnte...
Diskutiere nie mit einem Idioten: Erst zieht er dich auf sein
Niveau runter und dort schl?gt er dich mit Erfahrung.
Benutzeravatar
adjustMan
Beiträge: 205
Registriert: Sa 18.Sep, 2004 00:03

Beitrag von adjustMan »

[quote="easygo - Fr 24.Dez, 2004 16:25";p="19050"]mysql3 ? dann würde ich mal auf "mysql" umstellen in[/quote]
steht doch SO - siehe oben
cu aM
easygo
Beiträge: 155
Registriert: Fr 22.Okt, 2004 13:20
Kontaktdaten:

Beitrag von easygo »

[quote="adjustMan - Fr 24.Dez, 2004 15:34";p="19046"]mysql = ist mysql 3[/quote]

omg wie konnte ich DAS nur missverstehen ^^

Nun denn... wahrscheinlich war der Fehler hausgemacht,
weil die sessions table net komplett gelöscht wurden
vor dem Hacken der common ^^

Siehe README_FIRST:

Code: Alles auswählen

############################################################## 
## 
## Vor der Installation des Codes sollte im Adminpanel mit dem
## Sessions Manager die Sessionstabelle optimier und geleert werden
## 
##############################################################  
Diskutiere nie mit einem Idioten: Erst zieht er dich auf sein
Niveau runter und dort schl?gt er dich mit Erfahrung.
Benutzeravatar
adjustMan
Beiträge: 205
Registriert: Sa 18.Sep, 2004 00:03

Beitrag von adjustMan »

@easygo

nein, das hab ich vorher gemacht. ;) Ich probier jetzt mal LIMIT 0, 50 :confused:
cu aM
easygo
Beiträge: 155
Registriert: Fr 22.Okt, 2004 13:20
Kontaktdaten:

Beitrag von easygo »

[quote="adjustMan - Sa 25.Dez, 2004 15:55";p="19098"]nein, das hab ich vorher gemacht.[/quote]
Ja sicher...

[quote="adjustMan - Sa 25.Dez, 2004 15:55";p="19098"]Ich probier jetzt mal LIMIT 0, 50[/quote]
wie jetzt schon? überstürz dich mal net ^^

:p easygo
Diskutiere nie mit einem Idioten: Erst zieht er dich auf sein
Niveau runter und dort schl?gt er dich mit Erfahrung.
Benutzeravatar
adjustMan
Beiträge: 205
Registriert: Sa 18.Sep, 2004 00:03

Beitrag von adjustMan »

So, alles umsonst. ^7 Gleicher Fehler bei 250 :confused:
cu aM
easygo
Beiträge: 155
Registriert: Fr 22.Okt, 2004 13:20
Kontaktdaten:

Beitrag von easygo »

Dann lösch den Hack aus der common...

Stell um auf HEAP (weil schneller) öffne die sessions.php

Suche (around line 152):

Code: Alles auswählen

message_die(CRITICAL_ERROR, 'Error creating new session', '', __LINE__, __FILE__, $sql); 
Ersetz die Zeile durch:

Code: Alles auswählen

$error = TRUE; 
if (SQL_LAYER == "mysql" || SQL_LAYER == "mysql4") 
{ 
    $sql_error = $db->sql_error($result); 
    if ($sql_error["code"] == 1114) 
    { 
        $result = $db->sql_query('SHOW TABLE STATUS LIKE "'.SESSIONS_TABLE.'"'); 
        $row = $db->sql_fetchrow($result); 
        if ($row["Type"] == "HEAP") 
        { 
            if ($row["Rows"] > 2500) 
            { 
                $delete_order = (SQL_LAYER=="mysql4") ? " ORDER BY session_time ASC" : ""; 
                $db->sql_query("DELETE QUICK FROM ".SESSIONS_TABLE."$delete_order LIMIT 50"); 
            } 
            else 
            { 
                $db->sql_query("ALTER TABLE ".SESSIONS_TABLE." MAX_ROWS=".($row["Rows"]+50)); 
            } 
            if ($db->sql_query($sql)) 
            { 
                $error = FALSE; 
            } 
        } 
    } 
} 
if ($error) 
{ 
    message_die(CRITICAL_ERROR, "Error creating new session", "", __LINE__, __FILE__, $sql); 
}
Sollte dir der Wert 2500 zu hoch / zu niedrig sein,
dann ändere den einfach, aber übertreibs net.

Irgendwo ist da ein Server Limit gesetzt durch
tmp_table_size oder durch MAX_ROWS
Diskutiere nie mit einem Idioten: Erst zieht er dich auf sein
Niveau runter und dort schl?gt er dich mit Erfahrung.
Benutzeravatar
adjustMan
Beiträge: 205
Registriert: Sa 18.Sep, 2004 00:03

Beitrag von adjustMan »

[quote="easygo - So 26.Dez, 2004 17:59";p="19139"]
Stell um auf HEAP (weil schneller)[/quote]
Wie? In der DB direkt?
cu aM
easygo
Beiträge: 155
Registriert: Fr 22.Okt, 2004 13:20
Kontaktdaten:

Beitrag von easygo »

jepp, aber bitte nur die prefix_sessions table
Diskutiere nie mit einem Idioten: Erst zieht er dich auf sein
Niveau runter und dort schl?gt er dich mit Erfahrung.
Benutzeravatar
adjustMan
Beiträge: 205
Registriert: Sa 18.Sep, 2004 00:03

Beitrag von adjustMan »

[quote="easygo - So 26.Dez, 2004 17:59";p="19139"]
Irgendwo ist da ein Server Limit gesetzt durch
tmp_table_size oder durch MAX_ROWS[/quote]
wo soll das stehen?
cu aM
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

In den Eigenschaften der Tabelle. Müsste phpmyadmin anzeigen können.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
adjustMan
Beiträge: 205
Registriert: Sa 18.Sep, 2004 00:03

Beitrag von adjustMan »

ok. Habs schon. Danke. Bis jetzt läufts. :)
cu aM
Benutzeravatar
adjustMan
Beiträge: 205
Registriert: Sa 18.Sep, 2004 00:03

Beitrag von adjustMan »

jetzt hab ich ein (sehr kleines) Problem. Durch die Umstellung auf HEAP funktioniert mein Backupscript nicht mehr bei dieser Tabelle.

Code: Alles auswählen

error    : Der Tabellen-Handler für diese Tabelle unterstützt kein check/repair
Das Script arbeitet so:

Code: Alles auswählen

user="root";
pass="geheim";
server="localhost";
backupdir="/backfull/db";
mysqldump="/usr/bin/mysqldump";
mysqlcheck="/usr/bin/mysqlcheck";
mysqldir="/var/lib/mysql";
DATESTRING=`date +"%d%m%Y"`;
DELETEAFTER="1";  # Nach 2 Tagen backups loeschen
find $backupdir/. -type f -mtime +$DELETEAFTER -exec /bin/rm {} \;
echo "## ANFANGSZEIT" `date +"%d.%m.%Y - %H:%M:%S"`
echo "####################################"

cd $mysqldir
BACKUPLIST=`find . -type d | replace "./" "" | replace "." ""`

for i in $BACKUPLIST
do

if test -e $i; then

echo "## DATENBANK: $i"
echo "####################################"

$mysqlcheck --auto-repair --extended -u$user -p$pass -h$server $i
$mysqldump --add-drop-table -u$user -p$pass -h$server --opt $i | bzip2 -c > $backupdir/$i-$DATESTRING.sql.bz2

echo "####################################"
echo ""

fi

done

echo "####################################"
echo "## ENDE       " `date +"%d.%m.%Y - %H:%M:%S"`
echo "####################################"
Hat da jemand`n Tipp?
cu aM
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Heap-Tabellen lassen sich auch nicht mehr so ohne weiteres bearbeiten.
Da aber auch der Inhalt der sessions.php nicht wirklich in einem Backup benötigt wird, kannst Du das Backup hier aussparen. Lediglich die Tabellendefinition würde ich noch mit sichern.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
adjustMan
Beiträge: 205
Registriert: Sa 18.Sep, 2004 00:03

Beitrag von adjustMan »

[quote="oxpus - Do 30.Dez, 2004 11:16";p="19505"]Lediglich die Tabellendefinition würde ich noch mit sichern.[/quote]
Ooch, dann leb ich mit dem Fehler. :) Danke.
cu aM
Benutzeravatar
blondi
Beiträge: 1091
Registriert: Do 30.Sep, 2004 14:36

Beitrag von blondi »

hab eben das gesehen...

Session Manager
Dieses Modul zeigt die Statistiken der Sessionstabelle an und bietet einige
Möglichkeiten zur Verwaltung der Tabelle

Informationen
MySQL Version: 4.1.9-standard
Vorhandene Sessions: 5961
Gesetztes Maximum:
250

iss bisssi viel oder?
Antworten