it-swarm.com.de

Wie erzwingen Sie die Groß-/Kleinschreibung der Tabellennamen?

Ich arbeite an einer MySQL-Datenbank in Windows. 

Ich muss es in eine Linux-Umgebung verschieben. Die MySQL-Datenbank enthält viele Tabellen und gespeicherte Prozeduren, die CASE SENSITIVE sind.

Bei der Sicherung meiner Datenbank werden alle Tabellennamen in Kleinbuchstaben erzwungen. Wenn ich sie in Linux wiederherstellen, wird dies beschwert, da Sie keine doppelten Tabellen und gespeicherten Prozeduren erstellen können.

Ich habe keinen Zugriff auf die MySQL-Konfiguration in der Linux-Umgebung, daher kann ich die MySQL-Einstellungen nicht in den Modus "Groß- und Kleinschreibung" ändern.

Gibt es eine Möglichkeit, MySQL (v5.x) zur Verwendung der Groß- und Kleinschreibung von Tabellennamen in Windows zu zwingen?

38

Lesen Sie das alles: http://dev.mysql.com/doc/refman/5.0/de/identifier-case-sensitivity.html

Fügen Sie diese Systemvariable dann dem Serverabschnitt [mysqld] von my.ini hinzu und starten Sie mysql neu:

/my.ini: lower_case_table_names = 2

45
ATorras

Schauen Sie sich diesen Artikel an - http://dev.mysql.com/doc/refman/5.1/de/identifier-case-sensitivity.html

Modus 2 erlaubt das Speichern von Tabellen mit dem angegebenen Buchstaben, aber bei Namensvergleichen wird die Groß- und Kleinschreibung nicht berücksichtigt, und Sie können table1 und Table1 nicht gleichzeitig speichern.

8
Devart

Leider gibt es keine Möglichkeit, MySQL unter Windows zu einem 100% igen Verhalten wie unter Linux zu machen. Sie können einen minimalen VM auf Virtual Box oder VMware Player mit TurnKey - MySQL Appliance ausführen.

In meiner persönlichen Erfahrung habe ich es als sehr nützlich erachtet, eine VM mit einer Konfiguration zu haben, die der Implementierungsumgebung ähnelt, um Probleme zu diagnostizieren.

4
Augusto

Unter Windows setzen Sie lower_case_table_names = 2 am Ende der Datei C:\ProgramData\MySQL\MySQL Server 5.7\my.ini

4
Evgeny Chashnik

ich füge diese Zeile hinzu und löse das unterschiedliche Fallproblem

lower_case_table_names = 1

in /etc/my.cnf

sie können auf dieser Seite sehen, wie Sie die MySQL-Variable "lower_case_table_names" setzen: https://dev.mysql.com/doc/refman/5.0/de/server-system-variables.html#sysvar_lower_case_table_names

1
Hatem Badawi

Fügen Sie diese Eigenschaft zu lower_case_table_names = 2 zu my.ini hinzu.

0
Kris