MySQL Query Browser startet nicht

Startet MySQL Query Browser nicht, lohnt sich — wie meist in solchen Fällen — ein Blick ins Syslog und die Suche nach Einträgen der folgenden Art:

Oct 15 12:31:51 MeinRechnername kernel: [38427.674500] mysql-query-bro[28150]: segfault at 0 ip 03184c53 sp bfbc4320 error 4 in mysql-query-browser[8048000+1d5000]

Eine Ursache für das Auftreten eines Segmentation Fault, kurz als segfault bezeichnet, kann eine fehlerhafte bookmarks.xml-Datei sein. In diesem Falle kann das Problem zunächst durch Umbennen (oder Löschen) von bookmarks.xml behoben werden:

  • Linux: ~/.mysqlgui/query-browser/bookmarks.xml
  • MacOS X: ~/Library/Application Support/MySQL/QueryBrowser/bookmarks.xml

Startet jetzt MySQL Query Browser, ist die Ursache gefunden. Bleibt die Frage zu klären, was genau zu dem Problem geführt hat und wie es vermieden werden kann.

MySQL Query Browser ist beim Einlesen der bookmarks.xml nicht sehr fehlertolerant, wie sich einfach zeigen läßt. Die einfachst mögliche bookmarks.xml sieht folgendermaßen aus (Linux Ubuntu Lucid Lynx, MySQL Query Browser 1.2.12):

<?xml version="1.0"?>
 <bookmarks>
   <bookmark_group>
     <caption>Bookmarks</caption>
     <pos>0</pos>
     <bookmark>
       <caption>Lesezeichen</caption>
       <pos>0</pos>
       <catalog></catalog>
       <schema>Notizen</schema>
       <sql>SELECT * FROM Notizen ;</sql>
       <query_type>0</query_type>
       <access_count>0</access_count>
       <date_created/>
       <date_modified/>
       <date_last_access/>
     </bookmark>
   </bookmark_group>
 </bookmarks>

Man beachte die <pos>-Tags. Diese beschreiben die Position an der das jeweilige Lesezeichen angezeigt wird. Ändert man bspw. den Inhalt des zweiten Vorkommens von <pos> (Zeile acht) von 0 auf 1, tritt beim Start von MySQL Query Browser ein segfault auf, der das Programm unbenutzbar macht. MySQL Query Browser stört sich somit daran, daß es an erster Stelle (=0) kein Lesezeichen gibt.

In der Praxis kann dieser Fehler dann auftreten, wenn eine Lesezeichendatei unter MacOS X bearbeitet wird — insbesondere beim Verschieben von Lesezeichen innerhalb der Datei — und anschließendes Kopieren der bookmarks.xml auf ein Linuxsystem.

Zu beachten ist, daß sich die Inhalte der XML-Dateien, trotz gleicher MySQL Query Browser Version unterscheiden (MacOS X Schneeleopard, MySQL Query Browser 1.2.12):

<?xml version="1.0"?>
 <bookmarks>
   <bookmark_group>
     <caption>Bookmarks</caption>
     <pos>0</pos>
     <bookmark>
       <caption>Lesezeichen</caption>
       <pos>0</pos>
       <catalog>def</catalog>
       <schema>Notizen</schema>
       <sql>SELECT * FROM Notizen ;</sql>
       <query_type>0</query_type>
       <access_count>0</access_count>
       <date_created>2011-10-15 18:58:17</date_created>
       <date_modified>1970-01-01 00:00:00</date_modified>
       <date_last_access>1970-01-01 00:00:00</date_last_access>
     </bookmark>
   </bookmark_group>
 </bookmarks>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.