ich habe auf meinem lokalen Server zu Haus eine Mediawiki laufen, die bisher immer gut funktioniert hatte, was sich nun (scheinbar ohne mein Zutun, keine Updates etc. gemacht) geändert hat. Ich kann die Seiten in der Wiki zwar noch anzeigen, aber wenn ich eine Wiki-Seite bearbeiten will, wird folgender Fehler im Webbrowser angezeigt:
Code: Alles auswählen
MediaWiki internal error.
Original exception: exception 'DBQueryError' with message 'A database error has occurred
Query: SELECT page_namespace,page_title,page_latest,rev_id,rev_page,rev_text_id,rev_comment,rev_user_text,rev_user,rev_minor_edit,rev_timestamp,rev_deleted FROM `page`,`revision` WHERE (page_id=rev_page) AND rev_page = '1704' AND page_id = '1704' AND (rev_id=page_latest) LIMIT 1
Function: Revision::fetchRow
Error: 2006 MySQL server has gone away (localhost)
' in /var/www/website/mediawiki/includes/Database.php:694
Stack trace:
#0 /var/www/website/mediawiki/includes/Database.php(651): Database->reportQueryError('MySQL server ha...', 2006, 'SELECT page_na...', 'Revision::fetch...', false)
#1 /var/www/website/mediawiki/includes/Database.php(1034): Database->query('SELECT page_na...', 'Revision::fetch...')
#2 /var/www/website/mediawiki/includes/Revision.php(246): Database->select(Array, Array, Array, 'Revision::fetch...', Array)
#3 /var/www/website/mediawiki/includes/Revision.php(168): Revision::fetchFromConds(Object(DatabaseMysql), Array)
#4 /var/www/website/mediawiki/includes/Revision.php(89): Revision::loadFromConds(Object(DatabaseMysql), Array)
#5 /var/www/website/mediawiki/includes/Article.php(526): Revision::loadFromPageId(Object(DatabaseMysql), '1704')
#6 /var/www/website/mediawiki/includes/Article.php(540): Article->loadLastEdit()
#7 /var/www/website/mediawiki/includes/EditPage.php(804): Article->getTimestamp()
#8 /var/www/website/mediawiki/includes/EditPage.php(374): EditPage->initialiseForm()
#9 /var/www/website/mediawiki/includes/EditPage.php(217): EditPage->edit()
#10 /var/www/website/mediawiki/includes/Wiki.php(391): EditPage->submit()
#11 /var/www/website/mediawiki/includes/Wiki.php(50): MediaWiki->performAction(Object(OutputPage), Object(Article), Object(Title), Object(User), Object(WebRequest))
#12 /var/www/website/mediawiki/index.php(47): MediaWiki->initialize(Object(Title), Object(OutputPage), Object(User), Object(WebRequest))
#13 {main}
Exception caught inside exception handler: exception 'DBUnexpectedError' with message 'Error in fetchObject(): MySQL server has gone away (localhost)' in /var/www/website/mediawiki/includes/Database.php:811
Stack trace:
#0 /var/www/website/mediawiki/includes/MessageCache.php(310): Database->fetchObject(false)
#1 /var/www/website/mediawiki/includes/MessageCache.php(234): MessageCache->loadFromDB()
#2 /var/www/website/mediawiki/includes/MessageCache.php(430): MessageCache->load()
#3 /var/www/website/mediawiki/includes/GlobalFunctions.php(423): MessageCache->get('databaseerror', true, false)
#4 /var/www/website/mediawiki/includes/GlobalFunctions.php(382): wfMsgGetKey('databaseerror', true, false, true)
#5 /var/www/website/mediawiki/includes/Exception.php(18): wfMsgReal('databaseerror', Array)
#6 /var/www/website/mediawiki/includes/Database.php(212): MWException->msg('databaseerror', 'Database error')
#7 /var/www/website/mediawiki/includes/Exception.php(108): DBQueryError->getPageTitle()
#8 /var/www/website/mediawiki/includes/Exception.php(75): MWException->htmlHeader()
#9 /var/www/website/mediawiki/includes/Exception.php(94): MWException->reportHTML()
#10 /var/www/website/mediawiki/includes/Exception.php(170): MWException->report()
#11 /var/www/website/mediawiki/includes/Exception.php(204): wfReportException(Object(DBQueryError))
#12 [internal function]: wfExceptionHandler(Object(DBQueryError))
#13 {main}
Nach etwas Recherche konnte ich nachlesen, dass man in der my.conf die max_allowed_packet auf 16M stellen soll, War bei mir bereits der Fall. Habe testweise trotzdem alle Speicher-Werte verdoppelt und mysql neu gestartet: Fehler besteht weiterhin.
Dann habe ich gelesen, man kann die Tabellen in phpmyadmin reparieren. Doch wenn ich dort die Datenbank "wikidb" auswähle sagt mir phpmyadmin, dass für diese Datenbank keine Tabellen existieren würden.
An der Konsole sieht das ganze so aus:
Code: Alles auswählen
mysql> use wikidb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from page;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 1
Current database: wikidb
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
ERROR:
Can't connect to the server
mysql>
Dann habe ich noch mysqlcheck gestartet, hier werden die Tabellen (und die Datenbank wikidb) auch gar nicht erst aufgeführt:
Code: Alles auswählen
mysqlcheck -A -u root -p
Enter password:
mysql.columns_priv OK
mysql.db OK
mysql.func OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.host OK
mysql.proc OK
mysql.procs_priv OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
vorschlaege.vorschlaege OK
Jetzt gehen mir langsam die Ideen aus. Ich weiss jetzt auch nicht genau wie Mediawiki arbeitet, aber die Seiten lassen sich alle problemlos darstellen, erst wenn ich auf den Bearbeiten-Button gehe, gibt es Datenbankprobleme. Ich meine mich erinnern zu können, dass auch durch die Darstellung der Seite Datenbankabfragen gemacht werden, der Inhalt also nicht in irgendwechen Caches gehalten wird. Also MUSS ja noch irgendwas zu retten sein, oder?
Viele Grüße
derFloppy
edit: Hier noch die Version von mysql:
Code: Alles auswählen
mysql Ver 14.12 Distrib 5.0.32, for pc-linux-gnu (i486) using readline 5.2