mysql-Datenbank nicht auslesbar, MySQL server has gone away

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
Mr.Floppy
Beiträge: 222
Registriert: 21.03.2004 13:25:52

mysql-Datenbank nicht auslesbar, MySQL server has gone away

Beitrag von Mr.Floppy » 11.04.2010 14:05:02

Hallo zusammen,


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
Die anderen Datenbanken und Tabellen haben übrigens überhaupt keine Probleme. Die Tabelle vorschlaege.vorschlaege kann problemlos angezeigt und bearbeitet werden.


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

filou
Beiträge: 190
Registriert: 02.02.2004 21:21:40

Re: mysql-Datenbank nicht auslesbar, MySQL server has gone a

Beitrag von filou » 11.04.2010 15:05:40

Hi,

wie sieht den deine DB auf dem Filesystem aus? Also ein

Code: Alles auswählen

ls -al /var/lib/mysql
/var/lib/mysql/wikidb.
Gehören alle Verzeichnisse / Dateien dem User, unterm dem auch die mysql läuft? Meistens mysql..

Das datadir der Mysql steht in der my.cnf mit dem Parameter

Code: Alles auswählen

datadir =
Der Fehlercode 2006 besagt:

Code: Alles auswählen

OS error code  20:  Not a directory
OS error code   6:  No such device or address
Steht etwas im syslog, nachdem du mal die mysql restartet hast?

Code: Alles auswählen

grep -i mysqld /var/log/syslog
Das hört sich nicht unbedingt nach falschen Parametern der MySQL an.

Benutzeravatar
Mr.Floppy
Beiträge: 222
Registriert: 21.03.2004 13:25:52

Re: mysql-Datenbank nicht auslesbar, MySQL server has gone a

Beitrag von Mr.Floppy » 11.04.2010 15:43:29

Also auf Datei-Ebene sieht zunächst alles ganz okay aus:

Code: Alles auswählen

ls -la /var/lib/mysql/wikidb/                          
insgesamt 14860                                                           
drwx------ 2 mysql mysql     4096 2008-09-28 14:22 .                      
drwxr-xr-x 8 mysql mysql     4096 2010-04-11 15:30 ..                     
-rw-rw---- 1 mysql mysql     8988 2010-04-11 14:33 archive.frm            
-rw-rw---- 1 mysql mysql        0 2008-09-28 14:19 archive.MYD            
-rw-rw---- 1 mysql mysql     1024 2010-04-11 14:33 archive.MYI            
-rw-rw---- 1 mysql mysql     8612 2010-04-11 14:33 blobs.frm              
-rw-rw---- 1 mysql mysql        0 2008-09-28 14:19 blobs.MYD              
-rw-rw---- 1 mysql mysql     1024 2010-04-11 14:33 blobs.MYI              
-rw-rw---- 1 mysql mysql     8598 2010-04-11 14:33 brokenlinks.frm        
-rw-rw---- 1 mysql mysql       48 2008-09-28 14:19 brokenlinks.MYD        
-rw-rw---- 1 mysql mysql     5120 2010-04-11 14:33 brokenlinks.MYI        
-rw-rw---- 1 mysql mysql     8686 2010-04-11 14:33 categorylinks.frm      
-rw-rw---- 1 mysql mysql     1960 2010-02-22 19:08 categorylinks.MYD      
-rw-rw---- 1 mysql mysql     7168 2010-04-11 14:33 categorylinks.MYI      
-rw-rw---- 1 mysql mysql     9252 2010-04-11 14:33 cur.frm                
-rw-rw---- 1 mysql mysql   211220 2008-09-28 14:20 cur.MYD                
-rw-rw---- 1 mysql mysql   142336 2010-04-11 14:33 cur.MYI                
-rw-rw---- 1 mysql mysql       65 2008-09-28 14:19 db.opt                 
-rw-rw---- 1 mysql mysql     8636 2010-04-11 14:33 externallinks.frm      
-rw-rw---- 1 mysql mysql     9636 2010-04-11 14:33 filearchive.frm        
-rw-rw---- 1 mysql mysql     8562 2008-09-28 14:20 hitcounter.frm         
-rw-rw---- 1 mysql mysql     9256 2010-04-11 14:33 image.frm              
-rw-rw---- 1 mysql mysql     8598 2010-04-11 14:33 imagelinks.frm         
-rw-rw---- 1 mysql mysql      192 2010-04-02 15:15 imagelinks.MYD         
-rw-rw---- 1 mysql mysql     5120 2010-04-11 14:33 imagelinks.MYI         
-rw-rw---- 1 mysql mysql      504 2010-04-02 15:15 image.MYD              
-rw-rw---- 1 mysql mysql     5120 2010-04-11 14:33 image.MYI              
-rw-rw---- 1 mysql mysql     8680 2010-04-11 14:33 interwiki.frm          
-rw-rw---- 1 mysql mysql    17496 2008-09-28 14:20 interwiki.MYD          
-rw-rw---- 1 mysql mysql     5120 2010-04-11 14:33 interwiki.MYI          
-rw-rw---- 1 mysql mysql     9056 2010-04-11 14:33 ipblocks.frm           
-rw-rw---- 1 mysql mysql     8950 2010-04-11 14:33 ipblocks_old.frm       
-rw-rw---- 1 mysql mysql        0 2008-09-28 14:20 ipblocks_old.MYD       
-rw-rw---- 1 mysql mysql     1024 2010-04-11 14:33 ipblocks_old.MYI
-rw-rw---- 1 mysql mysql     8730 2010-04-11 14:33 job.frm
-rw-rw---- 1 mysql mysql     8640 2010-04-11 14:33 langlinks.frm
-rw-rw---- 1 mysql mysql     8618 2010-04-11 14:33 linkscc.frm
-rw-rw---- 1 mysql mysql        0 2008-09-28 14:20 linkscc.MYD
-rw-rw---- 1 mysql mysql     1024 2010-04-11 14:33 linkscc.MYI
-rw-rw---- 1 mysql mysql     8594 2010-04-11 14:33 links.frm
-rw-rw---- 1 mysql mysql       18 2008-09-28 14:20 links.MYD
-rw-rw---- 1 mysql mysql     3072 2010-04-11 14:33 links.MYI
-rw-rw---- 1 mysql mysql     8870 2010-04-11 14:33 logging.frm
-rw-rw---- 1 mysql mysql      476 2010-04-02 15:15 logging.MYD
-rw-rw---- 1 mysql mysql     6144 2010-04-11 14:33 logging.MYI
-rw-rw---- 1 mysql mysql     8790 2010-04-11 14:33 math.frm
-rw-rw---- 1 mysql mysql        0 2008-09-28 14:20 math.MYD
-rw-rw---- 1 mysql mysql     1024 2010-04-11 14:33 math.MYI
-rw-rw---- 1 mysql mysql     8634 2010-04-11 14:33 objectcache.frm
-rw-rw---- 1 mysql mysql   145452 2010-04-11 15:30 objectcache.MYD
-rw-rw---- 1 mysql mysql     4096 2010-04-11 15:30 objectcache.MYI
-rw-rw---- 1 mysql mysql     8946 2010-04-11 14:33 oldimage.frm
-rw-rw---- 1 mysql mysql      128 2010-04-02 14:40 oldimage.MYD
-rw-rw---- 1 mysql mysql     2048 2010-04-11 14:33 oldimage.MYI
-rw-rw---- 1 mysql mysql     9030 2010-04-11 14:33 page.frm
-rw-rw---- 1 mysql mysql     8650 2010-04-11 14:33 pagelinks.frm
-rw-rw---- 1 mysql mysql     8688 2010-04-11 14:33 querycache.frm
-rw-rw---- 1 mysql mysql     8616 2010-04-11 14:33 querycache_info.frm
-rw-rw---- 1 mysql mysql        0 2008-09-28 14:20 querycache.MYD
-rw-rw---- 1 mysql mysql     1024 2010-04-11 14:33 querycache.MYI
-rw-rw---- 1 mysql mysql     9322 2010-04-11 14:33 recentchanges.frm
-rw-rw---- 1 mysql mysql   100440 2010-04-02 15:16 recentchanges.MYD
-rw-rw---- 1 mysql mysql    55296 2010-04-11 14:33 recentchanges.MYI
-rw-rw---- 1 mysql mysql     8918 2009-03-29 23:50 revision.frm
-rw-rw---- 1 mysql mysql     8640 2008-09-28 14:21 searchindex.frm
-rw-rw---- 1 mysql mysql   283940 2010-04-02 15:16 searchindex.MYD
-rw-rw---- 1 mysql mysql   263168 2010-04-03 05:06 searchindex.MYI
-rw-rw---- 1 mysql mysql     8892 2008-10-05 11:26 site_stats.frm
-rw-rw---- 1 mysql mysql       53 2010-04-11 14:25 site_stats.MYD
-rw-rw---- 1 mysql mysql     2048 2010-04-11 14:56 site_stats.MYI
-rw-rw---- 1 mysql mysql     8650 2009-03-29 23:50 templatelinks.frm
-rw-rw---- 1 mysql mysql     9014 2008-09-28 14:21 text.frm
-rw-rw---- 1 mysql mysql 13078276 2010-04-02 15:16 text.MYD
-rw-rw---- 1 mysql mysql   188416 2010-04-03 05:06 text.MYI
-rw-rw---- 1 mysql mysql     8738 2008-09-28 14:22 trackbacks.frm
-rw-rw---- 1 mysql mysql        0 2008-09-28 14:22 trackbacks.MYD
-rw-rw---- 1 mysql mysql     1024 2008-09-28 14:22 trackbacks.MYI
-rw-rw---- 1 mysql mysql     8644 2009-03-29 23:50 transcache.frm
-rw-rw---- 1 mysql mysql     9184 2008-10-05 11:26 user.frm
-rw-rw---- 1 mysql mysql     8604 2009-03-29 23:50 user_groups.frm
-rw-rw---- 1 mysql mysql     3120 2010-04-02 14:34 user.MYD
-rw-rw---- 1 mysql mysql     5120 2010-04-03 05:06 user.MYI
-rw-rw---- 1 mysql mysql     8602 2008-09-28 14:22 user_newtalk.frm
-rw-rw---- 1 mysql mysql        0 2008-09-28 14:22 user_newtalk.MYD
-rw-rw---- 1 mysql mysql     1024 2008-09-28 14:22 user_newtalk.MYI
-rw-rw---- 1 mysql mysql     8606 2008-09-28 14:22 user_rights.frm
-rw-rw---- 1 mysql mysql       68 2008-09-28 14:22 user_rights.MYD
-rw-rw---- 1 mysql mysql     2048 2008-09-28 15:04 user_rights.MYI
-rw-rw---- 1 mysql mysql     8778 2008-09-28 14:22 validate.frm
-rw-rw---- 1 mysql mysql        0 2008-09-28 14:22 validate.MYD
-rw-rw---- 1 mysql mysql     1024 2008-09-28 14:22 validate.MYI
-rw-rw---- 1 mysql mysql     8720 2008-09-28 14:22 watchlist.frm
-rw-rw---- 1 mysql mysql       64 2010-04-02 14:40 watchlist.MYD
-rw-rw---- 1 mysql mysql     5120 2010-04-03 05:06 watchlist.MYI
Pfad in der my.cnf ist auch richtig gesetzt und die Dateirechte sehen ja auch okay aus.

Interessanter scheinen da die Meldungen im Log zu sein:

Code: Alles auswählen

Apr 11 15:30:10 mrfloppy mysqld[5061]: 100411 15:30:10 [ERROR] /usr/sbin/mysqld: Table [b]'./wikidb/objectcache' is marked as crashed and should be repaired      [/b]                                           
Apr 11 15:30:10 mrfloppy mysqld[5061]: 100411 15:30:10 [Warning] Checking table:   './wikidb/objectcache'                                                                                                 
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: Database page corruption on disk or a failed                                                                                                               
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: file read of page 325.                                                                                                                                     
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: You may have to recover from a backup.                                                                                                                     
Apr 11 15:30:10 mrfloppy mysqld[5061]: 100411 15:30:10  InnoDB: Page dump in ascii and hex (16384 bytes): 
Apr 11 15:30:10 mrfloppy mysqld[5061]:  len 16384; hex
[........................]
Apr 11 15:30:10 mrfloppy mysqld[5061]:  "   J   r     .   V   ~     i   w     u v     2   : ?       c o ] D  ;InnoDB: End of page dump
Apr 11 15:30:10 mrfloppy mysqld[5061]: 100411 15:30:10  InnoDB: Page checksum 2723911108, prior-to-4.0.14-form checksum 326100317
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: stored checksum 279873958, prior-to-4.0.14-form stored checksum 326100317
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: Page lsn 0 4514243, low 4 bytes of lsn at page end 4514243
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: Page number (if stored to page already) 325,
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) 0
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: Page may be an index page where index id is 0 111
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: (index rev_timestamp of table wikidb/revision)
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: Database page corruption on disk or a failed
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: file read of page 325.
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: You may have to recover from a backup.
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: It is also possible that your operating
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: system has corrupted its own file cache
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: and rebooting your computer removes the
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: error.
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: If the corrupt page is an index page
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: you can also try to fix the corruption
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: by dumping, dropping, and reimporting
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: the corrupt table. You can use CHECK
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: TABLE to scan your table for corruption.
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: See also InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: about forcing recovery.
Apr 11 15:30:10 mrfloppy mysqld[5061]: InnoDB: Ending processing because of a corrupt database page.
Apr 11 15:30:10 mrfloppy mysqld_safe[6086]: Number of processes running now: 0
Apr 11 15:30:10 mrfloppy mysqld_safe[6088]: restarted
Apr 11 15:30:10 mrfloppy mysqld[6091]: 100411 15:30:10  InnoDB: Started; log sequence number 0 5118074
Apr 11 15:30:10 mrfloppy mysqld[6091]: 100411 15:30:10 [Note] Recovering after a crash using /var/log/mysql/mysql-bin
Apr 11 15:30:10 mrfloppy mysqld[6091]: 100411 15:30:10 [Note] Starting crash recovery...
Apr 11 15:30:10 mrfloppy mysqld[6091]: 100411 15:30:10 [Note] Crash recovery finished.
Apr 11 15:30:10 mrfloppy mysqld[6091]: 100411 15:30:10 [Note] /usr/sbin/mysqld: ready for connections.
Apr 11 15:30:10 mrfloppy mysqld[6091]: Version: '5.0.32-Debian_7etch8-log'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  Debian etch distribution
Hier das ganze Log inkl. dem Filedump


Also das sieht ja zunächst danach aus, als ob nur die Tabelle "objectcache" ein Problem hat. Jetzt könnte man ja mal testweise alle Daten /var/lib/mysql/objectcache* löschen und schauen, ob sich etwas verbessert. Wenn es ein Cache ist, werden die Daten ja evtl.(?!) eh wieder neu erzeugt. Aber bevor ich tatsächlich etwas ausprobiere warte ich lieber nochmal auf Rückmeldungen.


Achso, ich hab übrigens auch ein fsck auf dem Filesystem gemacht - alles fehlerfrei.


Viele Grüße
Floppy

filou
Beiträge: 190
Registriert: 02.02.2004 21:21:40

Re: mysql-Datenbank nicht auslesbar, MySQL server has gone a

Beitrag von filou » 11.04.2010 19:18:29

Hi Floppy,

die Tabelle würde ich nicht löschen. Diese wird imho, bei der Installtion von MediaWiki einmalig angelegt. Was du machen könntest:

Code: Alles auswählen

mysql> use wikidb
mysql> truncate objectcache; 
Damit löscht du den Inhalt, die Struktur bleibt aber erhalten. Das Syslog verrät aber auch, das du ein gößeres Problem hast.

Code: Alles auswählen

InnoDB: Database page corruption on disk or a failed 
Warum ist hier was korrupt - und - warum siehst du die DB nicht im mysqlcheck...

1.) Sichere dein Backup der DB / Mediawiki auf einen anderen Rechern oder anderes Medium
2.) Restarte deinen Rechner.
3.) Prüfe deinen RAM mittels memtest86++
4.) Prüfe deine SMART Werte, falls möglich.
5.) Wenn deine Hardware ok sein sollte, prüfe nochmals dein MediaWiki.
6.) Ist die Datenbank jetzt in der mysql shell zu sehen? als root User -> mysql> show databases;
7.) Wenn nicht ist da noch was grundlegendes falsch. Evtl. hilft dann nur noch eine Neuinstallation nach evtl. ?Hardwarefehlerbbehebung?

so far

Benutzeravatar
Mr.Floppy
Beiträge: 222
Registriert: 21.03.2004 13:25:52

Re: mysql-Datenbank nicht auslesbar, MySQL server has gone a

Beitrag von Mr.Floppy » 11.04.2010 22:30:03

So langsam glaube ich auch an etwas übernatürlicheren Ursachen.


Also die Hardware habe ich überprüft, memtest ist sauber, in dem Rechner ist übrigens n 3ware Hardware RAID1, das hab ich über den Controller verfizieren lassen: alles OK.

Dann habe ich ne aktuelle Mediawiki-Installation auf dem Rechner, allerdings in anderem Verzeichnis, mit anderer Datenbank in mysql und mit anderem mysql-Benutzer durchgeführt, um die Daten händisch aus der relevanten .MYD-Datei wieder ins Wiki zu schreiben.

Dabei ist mir dann aufgefallen, dass das alte Wiki auf einmal wieder funktoniert hat!
Da wurd ich misstrauisch und habe lieber auf meinem Desktop-Rechner nochmal Mediawiki installiert und alle Daten von der mutmaßlich defekten Wiki rüber transferiert (PUH, das wichtigste ist geschafft).

Aber jetzt war ich wieder etwas misstrauisch. Die Media-Wiki-Installation macht ja eigentlich so gut wie gar nichts. Gut, sie fügt ne Datenbank, n paar Tabellen und n User in mysql an, aber das sollte die andere Wiki ja nicht beeinflussen. Jedenfalls hab ich wieder mysqlcheck durchgeführt und tadaa, es kommt wieder der Fehler 2006 und seitdem funktioniert die alte Wiki auch wieder nicht mehr (zum Glück hab ich ja bereits alles gerettet).




Also nun zum einen: Erklärungen fallen dir sicherlich auch keine mehr dazu ein, oder?

Und zum anderen: was wäre jetzt die sauberste Methode die Datenbank wieder flott zu bekommen. Ich bin nun halt ein wenig misstrauisch geworden. Wenn ich nun die alte Datenbank der alten Wiki lösche und der Fehler auch bei mysqlcheck nicht mehr kommt... bin ich dann im grünen Bereich? Eine Neu-Installation des Servers kommt leider in nächster Zeit nicht in Frage.




Achso und vielen Dank für deine Anteilnahme an dieser Stelle!

filou
Beiträge: 190
Registriert: 02.02.2004 21:21:40

Re: mysql-Datenbank nicht auslesbar, MySQL server has gone a

Beitrag von filou » 12.04.2010 00:53:10

Hi,

also langsam wird's schwierig. Poste bitte einmal deine my.cnf. Es gab mal einen BUG, der im Zusammenhang mit dem Error 2006 und max_allowed_packet auftrat. Der ist aber schon uralt und bezieht sich auf eine 4.x MySQL Version.

Soviel ich weiß, wird vom MediaWiki die Datenbank mit InnoDB Tabellen angelegt - zumindest einige.

Hmm, wie du wieder alles sauber bekommst?!

Wenn du deine Daten gesichert hast und zurückspielen kannst, würde ich hergehen und alle alten Datenbanken vom mediawiki rauswerfen.
Dazu die Datenbank stoppen, in das datadir gehen und alles was mit dem mediawiki zu tun hat löschen.
Aber Achtung: Mediwiki erstellt auch einige Tabellen im InnoDB Format. (Was bei dir wohl im Moment ziemlich kaputt ist).

Wenn du keine weiteren Tabellen in InnoDB hast - von irgendwelchen anderen Datenbanken, kannst du ganz brutal hergehen und unter

Code: Alles auswählen

/var/lib/mysql
die Dateien

Code: Alles auswählen

ibdata* ib_logfile* 
löschen.
Dieses sind einmal die Daten und Indexdatei der InnoDB Tabellen, sowie deren Logfiles für recover..
Die Dateien werden nach einem MySQL start wieder angelegt.

Jetzt kannst du hergehen und dein Mediawiki sauber aufsetzen und die Daten zurück spielen.

Falls du vorher noch testen willst, kannst du

Code: Alles auswählen

 mysql> create database bla;
create table a (x int, y varchar (20)) engine=innodb;
show create table a;
Steht da nun

Code: Alles auswählen

ENGINE=InnoDB DEFAULT CHARSET=latin1 |
hast du wieder InnoDB Tabellen. Mit dieser kannst du nun bisschen rumspielen. Insert, update, delete, select...
Anschließend kannst du nochmal einen mysqlcheck -A laufen lassen. Die Tabelle sollte mit aufgeführt werden und auch ok sein.
Restarte noch einmal die mysql und schau dir noch einmal das syslog an. Sieht alles gut aus, kannst dein Mediawiki wieder mit Daten füllen.

Soweit die Theorie :)

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: mysql-Datenbank nicht auslesbar, MySQL server has gone a

Beitrag von ThorstenS » 12.04.2010 17:43:49

ein filesystemcheck (fsck) für /var könnte auch nicht schaden. Am sichersten geht das über eine RettungsCD wie http://www.grml.org.
Die Dateien aus /var/lib/mysql zu sichern kann gut gehen, muss es aber nicht.
Bei deinem Backupkonzept solltest du auf mysqldump setzen.

Antworten