Normalerweise melden Sie Bugs bei http://bugs.mysql.com/, unserer Fehlerdatenbank. Diese Datenbank ist öffentlich; jeder kann in ihr stöbern oder suchen. Wenn Sie sich beim System anmelden, können Sie auch neue Bugreports übermitteln.
Wenn Sie einen Sicherheitsbug in MySQL gefunden haben, schicken Sie eine E-Mail an security_at_mysql.com.
Zum Schreiben eines guten Bugreports gehört Geduld, doch wenn Sie es von Anfang an richtig machen, sparen Sie unsere und Ihre eigene Zeit. Wenn wir einen guten Bugreport mit einem vollständigen Testfall für den Bug bekommen, werden wir den Fehler höchstwahrscheinlich im nächsten Release beheben können.
Dieser Abschnitt hilft Ihnen, Ihren Bericht korrekt zu verfassen, damit Sie nicht Ihre Zeit verschwenden, um uns Dinge mitzuteilen, die uns kaum oder gar nicht weiterhelfen.
Wenn Sie einen reproduzierbaren Bug melden, schicken Sie Ihren Bericht bitte an die Fehlerdatenbank unter http://bugs.mysql.com/. Einen Fehler, den wir reproduzieren können, werden wir mit Sicherheit im nächsten MySQL-Release auch beheben können.
Um andere Probleme zu melden, nutzen Sie bitte eine der MySQL-Mailinglisten.
Mit einer zu ausführlichen Meldung können wir meist etwas anfangen, aber nicht mit einer, die zu wenig Informationen enthält. Oft lassen die Nutzer Einzelheiten weg, weil sie glauben, die Fehlerursache bereits zu kennen, und manche Details für bedeutungslos halten.
Halten Sie sich an das Prinzip: Wenn Sie im Zweifel sind, ob Sie ein Detail erwähnen sollen, tun Sie es. Ein paar Zeilen mehr in Ihrem Bericht kosten Sie wenig Zeit und Mühe. Das ist besser, als lange auf eine Antwort zu warten, weil wir Informationen, die im Bericht fehlten, nachträglich von Ihnen einholen müssen.
Die häufigsten Fehler in Bugreports sind (a) der Verfasser gibt die Versionsnummer von Connector/J oder MySQL nicht an, und (b) er beschreibt die Plattform auf der Connector/J installiert ist, nicht genau genug (einschließlich JVM-Version sowie Plattformtyp und -version, auf der MySQL selbst installiert ist).
Ohne diese ungeheuer wichtigen Informationen ist der Bugreport in 99 Prozent der Fälle nutzlos. Sehr oft werden uns Fragen gestellt wie: „Warum funktioniert das bei mir nicht?“ Dann stellen wir fest, dass das verlangte Feature in dieser MySQL-Version nicht implementiert war, oder dass ein Bug, der in einem Bericht beschrieben wird, in den neueren MySQL-Versionen bereits behoben wurde.
Manchmal ist der Fehler plattformunabhängig. In solchen Fällen ist es für uns nachgerade unmöglich, irgendetwas zu reparieren, ohne das Betriebssystem und die Versionsnummer der Plattform zu kennen.
Wenn es irgend möglich ist, erstellen Sie bitte einen reproduzierbaren, eigenständigen Testfall, der keine Klassen von Drittanbietern einbezieht.
Um dies zu vereinfachen, liefern wir eine Basisklasse namens
'com.mysql.jdbc.util.BaseBugReport
' für
Testfälle mit Connector/J. Um mit dieser Klasse einen Testfall
für Connector/J anzulegen, erstellen Sie eine eigene Klasse,
die von com.mysql.jdbc.util.BaseBugReport
erbt und die Methoden setUp()
,
tearDown()
und runTest()
überschreibt.
In der Methode setUp()
legen Sie Ihre
Tabellen an und laden die Daten hinein, die zum Demonstrieren
des Fehlers erforderlich sind.
In die Methode runTest()
schreiben Sie Code,
der den Bug an den Tabellen und Daten, die mit
setUp
erstellt wurden, aufzeigt.
Mit der Methode tearDown()
löschen Sie die
mit setUp()
erstellten Tabellen.
In einer dieser drei Methoden sollten Sie mit einer Variante der
getConnection()
-Methode eine JDBC-Verbindung
mit MySQL aufbauen:
getConnection()
- Richtet eine Verbindung
mit dem in getUrl()
angegebenen JDBC URL
ein. Wenn bereits eine Verbindung besteht, wird diese
zurückgegeben, andernfalls wird eine neue Verbindung
angelegt.
getNewConnection()
- Dies verwenden Sie,
wenn sie eine neue Verbindung für Ihren Bugreport
benötigen (d.h. wenn mehr als eine Verbindung beteiligt
sind).
getConnection(String url)
- Gibt eine
Verbindung mit dem angegebenen URL zurück.
getConnection(String url, Properties
props)
- Gibt eine Verbindung mit diesem URL und
diesen Eigenschaften zurück.
Wenn Sie einen anderen JDBC-URL als 'jdbc:mysql:///test'
benutzen müssen, überschreiben Sie auch die Methode
getUrl()
.
Mit den Methoden assertTrue(boolean
expression)
und assertTrue(String
failureMessage, boolean expression)
erstellen Sie
Bedingungen, die in Ihrem Testfall erfüllt sein müssen, um das
erwartete Verhalten zu demonstrieren (im Gegensatz zu dem
Verhalten, das Sie beobachten, und wegen dem Sie den Bugreport
schreiben).
Zum Schluss schreiben Sie eine
main()
-Methode, die eine neue Instanz Ihres
Testfalls erzeugt und die run
-Methode
aufruft:
public static void main(String[] args) throws Exception { new MyBugReport().run(); }
Wenn Sie mit Ihrem Testfall fertig sind und sich überzeugt haben, dass er den Fehler, den Sie melden, demonstriert, übermitteln Sie ihn mit Ihrem Bugreport an http://bugs.mysql.com/.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.