Weiter Zurück [Inhalt] Online Suche im Handbuch

21. Unterschiede zwischen MySQL-Win32 und UNIX

MySQL-Win32 hat sich als sehr stabil erwiesen. Leider gibt es einige Unterschiede zwischen der Windows Version und den UNIX Derivaten, die häufig zu Problemen führen:

  1. Win95 und Threads Unter Windows 95 gibt es ein Memory Leak, welches pro aktiviertem Thread 200 Bytes von dem Hauptspeicher nach dessen Beendigung nicht mehr freigibt. Das bedeutet, daß nach ca. 5000 Zugriffen ca. 1 MByte RAM Verlust zu beklagen ist. Der Fehler liegt in den Libraries von Windows 95, NT und Windows 98 besitzen diesen Fehler nicht.
  2. Windows 98 muß nach ca. 30 Tagen neu gestartet werden, da es einfach aufhört, zu arbeiten.
  3. Blocking Sockets sorgen bei der Win32 Version von MyQL dafür, daß bei jedem Zugriff eines Clients auf den Port dieser gesperrt wird. Das hat zur Folge, daß eine Verbindung nicht nach einigen Minuten/Stunden nicht automatisch freigegeben (disconnektiert) wird, wie dies unter UNIX der Fall ist. Wenn eine Verbindung hängt, das ist immer dann der Fall, wenn ein Client mal abstürzt. Dieser Thread wird dann nicht automatisch freigegeben und verbraucht dann RAM. Ein DoS Angriff wäre sehr einfach möglich... In diesem Falle muß MySQL von Zeit zu Zeit neu gestartet werden....ebenso, wie Windows NT.....mysqladmin mit den Optionen kill und shutdown funktioniert in diesem Fall nicht.
  4. UDF (User Defined Functions) können momentan unter Win32 nicht benutzt werden.
  5. DROP DATABASE funktioniert immer dann nicht, wenn auf die Datenbank von irgendeinem Client (lesend oder scheibend) zugegriffen wird.
  6. MySQL kann nicht mit dem Taskmanager ausgeschaltet werden.
  7. Unter Win32 unterstützt MySQL keine User definierten Funktionen.
  8. Eine Datenbank, die in Gebrauch ist, kann nicht gelöscht werden.
  9. MySQL kann nicht mit dem Taskmanager beendet werden, sondern muß mit dem SHUTDOWN Utility heruntergefahren werden.
  10. Die Unterscheidung von Groß/Kleinschreibung bei Dateinamen, Datenbanknamen und Tabellennamen funktioniert nur unter UNIX, nicht unter Win32.
  11. Innerhalb eines Statements müssen Groß/Kleinschreibung einheitlich sein. Dieses Statement führt zu Fehlern: SELECT * FROM my_table WHERE MY_TABLE.col=1;
  12. Unter UNIX ist die Verwendung von "/" einheitlich, unter Win32 müssen alle Charakter als "\" eingegeben werden, so z.B. die Pfadnamen:
         LOAD DATA INFILE "C:\\tmp\\skr.txt" INTO TABLE skr;
         SELECT * FROM skr INTO OUTFILE 'C:/tmp/skr.txt';
    
  13. Named Pipes funktionieren unter Win32 nur unter Windows NT. Hierzu muß die Datei c:\my.cnf angelegt werden, und folgende Informationen enthalten:
         [client]
         host = localhost
    
  14. Falls der Fehler Access denied for user: 'some-user@unknown' to database 'mysql' erscheint, dann kann der Name des lokalen Hosts nicht korrekt aufgelöst werden. Hierzu muß in der Datei c:\windows\hosts die Zeile 127.0.0.1 localhost eingetragen werden.


Weiter Zurück [Inhalt] Online Suche im Handbuch