Bei Tabellennamen in MySQL wird zwischen Groß- und Kleinschreibung unterschieden?
Auf meinem Windows-Entwicklungscomputer kann der Code, den ich habe, meine Tabellen abfragen, die scheinbar nur in Kleinbuchstaben geschrieben sind. Wenn ich auf dem Testserver in unserem Rechenzentrum bereitstelle, scheinen die Tabellennamen mit einem Großbuchstaben zu beginnen.
Die Server, die wir verwenden, sind alle unter Ubuntu.
mysql
case-sensitive
mysql5
benstpierre
quelle
quelle
Antworten:
Allgemein:
Datenbank- und Tabellennamen unterscheiden in Windows nicht zwischen Groß- und Kleinschreibung und in den meisten Unix-Varianten zwischen Groß- und Kleinschreibung.
Mit der Systemvariablen
lower_case_table_names
(in der Konfigurationsdatei my.cnf unter [mysqld]) kann konfiguriert werden, wie Tabellennamen auf der Festplatte gespeichert werden .Weitere Informationen finden Sie im Abschnitt: 10.2.2 Groß- / Kleinschreibung der Kennung .
quelle
Datenbank- und Tabellennamen unterscheiden in Windows nicht zwischen Groß- und Kleinschreibung und in den meisten Unix- oder Linux-Varianten zwischen Groß- und Kleinschreibung.
Um das Problem zu beheben, setzen Sie die Namen der Kleinbuchstaben auf 1
Dadurch werden alle Ihre Tabellen in Kleinbuchstaben geschrieben, unabhängig davon, wie Sie sie schreiben
quelle
Tabellennamen in MySQL sind Dateisystemeinträge, daher wird die Groß- und Kleinschreibung nicht berücksichtigt, wenn das zugrunde liegende Dateisystem vorhanden ist.
quelle
Dies hängt von der
lower_case_table_names
Systemvariablen ab:Hierfür gibt es drei mögliche Werte:
0
- Briefkasten in der AnweisungCREATE TABLE
oder angegebenCREATE DATABASE
. Bei Namensvergleichen wird zwischen Groß- und Kleinschreibung unterschieden.1
- Tabellennamen werden auf der Festplatte in Kleinbuchstaben gespeichert, und bei Namensvergleichen wird nicht zwischen Groß- und Kleinschreibung unterschieden.2
- In der AnweisungCREATE TABLE
oder angegebener Groß-CREATE DATABASE
und Kleinschreibung, aber MySQL konvertiert sie bei der Suche in Kleinbuchstaben. Namensvergleiche unterscheiden nicht zwischen Groß- und Kleinschreibung.Dokumentation
quelle
Suchen Sie die Datei unter
/etc/mysql/my.cnf
Bearbeiten Sie die Datei, indem Sie die folgenden Zeilen hinzufügen:
[mysqld]
lower_case_table_names=1
sudo /etc/init.d/mysql restart
laufen ,
mysqladmin -u root -p variables | grep table
dass zu prüfenlower_case_table_names
ist1
jetztMöglicherweise müssen Sie diese Tabellen neu erstellen, damit sie funktionieren
quelle