MySQL für Windows hat sich als sehr stabil erwiesen. Die Windows-Version von MySQL hat dieselben Merkmale wie die entsprechende Unix-Version. Es gibt jedoch folgende Ausnahmen:
Windows 95 und Threads
Pro erstelltem Thread verliert Windows 95 durch ein Speicherleck etwa 200 Byte Hauptspeicher. Jede Verbindung in MySQL erstellt einen neuen Thread, weswegen man mysqld nicht für längere Zeit unter Windows 95 ausführen sollte, wenn Ihr Server mehrere Verbindungen verwaltet! Neuere Windows-Versionen weisen diesen Bug nicht auf.
Eingeschränkte Anzahl von Ports
Windows-Systeme stellen für Clientverbindungen etwa 4000 Ports bereit. Wird eine Verbindung über einen Port beendet, dann dauert es zwei bis vier Minuten, bis der Port wieder verwendet werden kann. In Situationen, in denen Clients sehr schnell Verbindungen mit dem Server herstellen und diese wieder trennen, ist es unter Umständen möglich, dass alle verfügbaren Ports verbraucht sind, bevor bereits geschlossene Ports wieder verfügbar werden. In diesem Fall scheint der MySQL Server stehen geblieben zu sein, obwohl er tatsächlich nach wie vor ausgeführt wird. Beachten Sie, dass unter Umständen auch andere auf dem System laufenden Anwendungen Ports beanspruchen; in diesem Fall ist die Anzahl der für MySQL verfügbaren Ports noch geringer.
Weitere Informationen zu diesem Problem finden Sie unter http://support.microsoft.com/default.aspx?scid=kb;en-us;196271.
Gleichzeitige Leseoperationen
            MySQL ist auf die Systemaufrufe pread()
            und pwrite() angewiesen, um
            INSERT und SELECT
            miteinander kombinieren zu können. Zurzeit verwenden wir
            Mutexe zur Emulation von pread() und
            pwrite(). Wir beabsichtigen, diese
            Schnittstelle auf Dateiebene in der Zukunft durch eine
            virtuelle Schnittstelle zu ersetzen, damit wir die
            Schnittstellen
            readfile()/writefile()
            unter Windows NT, Windows 2000 und Windows XP verwenden
            und so eine höhere Geschwindigkeit erzielen können. Die
            aktuelle Implementierung beschränkt die Anzahl der von
            MySQL 5.1 verwendbaren offenen Dateien auf
            2048, d. h., Sie können unter Windows NT/2000/XP/Server
            2003 nicht so viele gleichzeitige Threads ausführen wie
            unter Unix.
          
Sperrleseoperationen
MySQL verwendet für jede Verbindung eine Sperrleseoperation. Dies hat die folgenden Auswirkungen, wenn Named-Pipe-Verbindungen aktiviert sind:
Eine Verbindung wird – anders als bei MySQL für Unix – nicht automatisch nach acht Stunden getrennt.
Hängt eine Verbindung, dann ist es nicht möglich, diese zu unterbrechen, ohne MySQL zu terminieren.
mysqladmin kill funktioniert bei hängenden Verbindungen nicht.
mysqladmin shutdown kann MySQL nicht herunterfahren, solange eine Verbindung hängt.
Wir beabsichtigen, dieses Problem in der Zukunft zu lösen.
             ALTER TABLE
            
          
            Während Sie eine ALTER TABLE-Anweisung
            ausführen, ist die betreffende Tabelle für die Benutzung
            durch andere Threads gesperrt. Dies hängt mit der Tatsache
            zusammen, dass Sie eine Datei unter Windows nicht löschen
            können, solange sie von einem anderen Thread verwendet
            wird. Wir hoffen, für dieses Problem in der Zukunft einen
            Workaround zu finden.
          
             DROP TABLE
            
          
            
            Die Ausführung von DROP TABLE für eine
            Tabelle, die von einer MERGE-Tabelle
            verwendet wird, funktioniert unter Windows nicht, da der
            MERGE-Handler die Tabellenzuordnung vor
            der übergeordneten Schicht von MySQL verborgen vornimmt. Da
            Windows das Löschen geöffneter Dateien nicht gestattet,
            müssen Sie zunächst alle MERGE-Tabellen
            (mit FLUSH TABLES) neu laden oder die
            MERGE-Tabelle löschen, bevor Sie die
            gewünschte Tabelle tatsächlich löschen können.
            
          
            DATA DIRECTORY und
            INDEX DIRECTORY
          
            Die Optionen DATA DIRECTORY und
            INDEX DIRECTORY für CREATE
            TABLE werden unter Windows ignoriert, da Windows
            keine symbolischen Verknüpfungen unterstützt. Außerdem
            werden diese Optionen auf Systemen ignoriert, bei denen der
            Aufruf realpath() nicht funktioniert.
          
             DROP DATABASE
            
          
Sie können eine Datenbank, die gerade von einem Thread verwendet wird, nicht löschen.
MySQL aus dem Task-Manager heraus terminieren
Unter Windows 95 können Sie MySQL nicht aus dem Task-Manager heraus oder mit dem Ausschalt-Utility terminieren. Sie müssen MySQL vielmehr mit dem Befehl mysqladmin shutdown beenden.
Irrelevante Groß-/Kleinschreibung bei Namen
Da die Groß-/Kleinschreibung bei Dateinamen unter Windows nicht unterschieden wird, ist auch die Schreibweise der Namen von MySQL-Datenbanken und -Tabellen unter Windows irrelevant. Die einzige Einschränkung besteht darin, dass die Datenbank- und Tabellennamen unter Verwendung derselben Schreibweise (Groß- oder Kleinschreibung) in einer gegebenen Anweisung festgelegt werden müssen. Siehe auch Abschnitt 9.2.2, „Groß-/Kleinschreibung in Namen“.
            Das Pfadtrennzeichen
            ‘\’
          
            Unter Windows werden die Bestandteile von Pfaden durch das
            Zeichen ‘\’ voneinander
            getrennt, welches gleichzeitig das Escape-Zeichen von MySQL
            ist. Wenn Sie LOAD DATA INFILE oder
            SELECT ... INTO OUTFILE verwenden,
            verwenden Sie Dateinamen im Unix-Stil mit
            ‘/’-Zeichen:
          
mysql>LOAD DATA INFILE 'C:/tmp/skr.txt' INTO TABLE skr;mysql>SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr;
            Alternativ müssen Sie das Zeichen
            ‘\’ doppelt verwenden:
          
mysql>LOAD DATA INFILE 'C:\\tmp\\skr.txt' INTO TABLE skr;mysql>SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr;
Probleme mit Pipes
            An der Windows-Eingabeaufforderung funktionieren Pipes nicht
            zuverlässig. Wenn eine Pipe das Zeichen
            ^Z/CHAR(24) enthält,
            meint Windows ein Dateiende zu erkennen und bricht das
            Programm ab.
          
Dies ist in erster Linie ein Problem, wenn Sie wie folgt eine binäre Logdatei anzuwenden versuchen:
C:\> mysqlbinlog binary_log_file | mysql --user=root
            Wenn Sie bei der Anwendung des Logs Probleme haben und das
            Zeichen ^Z/CHAR(24)
            für die Ursache halten, dann können Sie den folgenden
            Workaround verwenden:
          
C:\>mysqlbinlogC:\>binary_log_file--result-file=/tmp/bin.sqlmysql --user=root --execute "source /tmp/bin.sql"
Der untere Befehl kann auch verwendet werden, um zuverlässig in einer beliebigen SQL-Datei zu lesen, die unter Umständen Binärdateien enthält.
            Fehler Access denied for
            user
          
Wenn MySQL Ihren Hostnamen nicht korrekt auflösen kann, erhalten Sie unter Umständen folgende Fehlermeldung, sobald Sie versuchen, ein MySQL-Clientprogramm auszuführen, um eine Verbindung mit dem auf dem gleichen Computer laufenden Server herzustellen:
Access denied for user 'some_user'@'unknown'
to database 'mysql'
            Um dieses Problem zu beheben, sollten Sie eine Datei namens
            \windows\hosts erstellen, die die
            folgenden Informationen enthält:
          
127.0.0.1 localhost
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.

