Unter Unix ist der Standardwert von lower_case_table_names
0. Unter Windows beträgt der Standardwert 1. Unter Mac OS X beträgt der Standardwert 1 vor MySQL 4.0.18 und 2 ab 4.0.18.
Um dies zu beheben, können Sie nach der Einstellung lower_case_table_names
in Ihrer my.ini-Datei suchen, die sich in oder um den Ordner: C:\Program Files\MySQL\MySQL Server 4.1 befindet, abhängig von der Version, die Sie verwenden. Wenn Sie die Einstellung nicht finden, können Sie sie einfach am Ende der my.ini-Datei hinzufügen, wie ich es getan habe, so:
lower_case_table_names=0
Vergessen Sie nicht, den MySQL-Dienst neu zu starten, bevor Sie testen, ob es funktioniert.
Wenn Sie MySQL nur auf einer Plattform verwenden, müssen Sie die lower_case_table_names-Variable normalerweise nicht von ihrem Standardwert ändern. Sie können jedoch auf Schwierigkeiten stoßen, wenn Sie Tabellen zwischen Plattformen übertragen, die sich in der Groß- und Kleinschreibung des Dateisystems unterscheiden. Beispielsweise können Sie unter Unix zwei verschiedene Tabellen namens my_table und MY_TABLE haben, aber unter Windows gelten diese Namen als identisch. Um Datenübertragungsprobleme aufgrund der Groß- und Kleinschreibung von Datenbank- oder Tabellennamen zu vermeiden, haben Sie zwei Möglichkeiten:
Verwenden Sie lower_case_table_names=1 auf allen Systemen. Der Hauptnachteil dabei ist, dass Sie bei der Verwendung von SHOW TABLES oder SHOW DATABASES die Namen nicht in ihrer ursprünglichen Groß- und Kleinschreibung sehen.
Verwenden Sie lower_case_table_names=0 unter Unix und lower_case_table_names=2 unter Windows. Damit wird die Groß- und Kleinschreibung von Datenbank- und Tabellennamen erhalten. Der Nachteil dabei ist, dass Sie sicherstellen müssen, dass Ihre Anweisungen auf Windows immer auf Ihre Datenbank- und Tabellennamen mit der richtigen Groß- und Kleinschreibung verweisen. Wenn Sie Ihre Anweisungen auf Unix übertragen, wo die Groß- und Kleinschreibung wichtig ist, funktionieren sie nicht, wenn die Groß- und Kleinschreibung falsch ist.
Ausnahme: Wenn Sie InnoDB-Tabellen verwenden und diese Datenübertragungsprobleme vermeiden möchten, sollten Sie auf allen Plattformen lower_case_table_names auf 1 setzen, um die Namen in Kleinbuchstaben zu konvertieren.
Wenn Sie beabsichtigen, die Systemvariable lower_case_table_names auf Unix auf 1 zu setzen, müssen Sie zuerst Ihre alten Datenbank- und Tabellennamen in Kleinbuchstaben konvertieren, bevor Sie mysqld anhalten und mit der neuen Variableneinstellung neu starten.
Bitte besuchen Sie die MySQL-Website für weitere Informationen dazu und einige wichtige Warnhinweise http://dev.mysql.com/doc/refman/4.1/en/identifier-case-sensitivity.html