Heim > Artikel > Backend-Entwicklung > Interpretation von MySQL-Konfigurationsproblemen, bei denen die Groß-/Kleinschreibung beachtet wird
Zwei Parameter im Zusammenhang mit der MySQL-case-sensitiven Konfiguration, lower_case_file_system und lower_case_table_names .
Sehen Sie sich die aktuelle Konfiguration von MySQL an, bei der die Groß-/Kleinschreibung beachtet wird
show global variables like '%lower_case%';+------------------------+-------+| Variable_name | Value | +------------------------+-------+| lower_case_file_system | ON | | lower_case_table_names | 0 |+------------------------+-------+
Gibt an, ob bei der aktuellen Systemdatei die Groß-/Kleinschreibung beachtet wird, ein schreibgeschützter Parameter vorliegt und nicht geändert werden kann.
EINGroß-/Kleinschreibung wird nicht beachtet
AUSGroß-/Kleinschreibung beachtet
lower_case_table_names
Gibt an ob beim Tabellennamen die Groß-/Kleinschreibung beachtet wird und ob er geändert werden kann.
Wenn Lower_case_table_names = 0, arbeitet MySQL direkt basierend auf dem Tabellennamen und unterscheidet zwischen Groß- und Kleinschreibung.
Wenn Lower_case_table_names = 1 ist, konvertiert MySQL zunächst den Tabellennamen in Kleinbuchstaben, bevor der Vorgang ausgeführt wird.
Legen Sie den Wert von Kleinbuchstaben-Tabellennamen fest
Öffnen Sie die Datei my.cnf, fügen Sie die folgenden Anweisungen hinzu und starten Sie neu.
lower_case_table_names = 0 或 lower_case_table_names = 1
Tabellenbenutzer erstellen
CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Der Tabellenname stimmt mit der Groß-/Kleinschreibung überein, als er erstellt wurde.
select count(*) from user; +----------+| count(*) | +----------+| 0 | +----------+
Der Tabellenname stimmt nicht mit der Groß-/Kleinschreibung überein, als er erstellt wurde erstellt
select count(*) from User;ERROR 1146 (42S02): Table 'user.User' doesn't exist
Wenn Lower_case_table_names=0, wird bei Tabellennamen die Groß-/Kleinschreibung beachtet.
Der Tabellenname muss in der gleichen Groß-/Kleinschreibung angegeben werden wie bei der Erstellung
select count(*) from user; +----------+| count(*) | +----------+| 0 | +----------+
Der Tabellenname stimmt nicht mit der Groß-/Kleinschreibung überein, als er erstellt wurde
select count(*) from user; +----------+| count(*) | +----------+| 0 | +----------+
Wenn Lower_case_table_names=1, wird beim Tabellennamen die Groß-/Kleinschreibung nicht beachtet.
lower_case_table_names=1 festlegen, wird die ursprünglich erstellte Tabelle bei Verwendung als nicht vorhanden angezeigt.
DemoTabellenbenutzer erstellen (gemischte Groß-/Kleinschreibung)
CREATE TABLE `User` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;show tables; +----------------+| Tables_in_user | +----------------+| User | +----------------+und dann
lower_case_table_names=1
festlegen, um die Abfrage auszuführen. Unabhängig davon, ob der Tabellenname in Groß- oder Kleinbuchstaben geschrieben ist, wird angezeigt, dass die Tabelle nicht existiert
select * from User;ERROR 1146 (42S02): Table 'user.user' doesn't existselect * from user;ERROR 1146 (42S02): Table 'user.user' doesn't existselect * from USER;ERROR 1146 (42S02): Table 'user.user' doesn't exist
Denn wenn Lower_case_table_names=1, wird der Tabellenname vor dem Vorgang in Kleinbuchstaben konvertiert und es gibt überhaupt keinen Tabellennamen in Kleinbuchstaben in der Datei, sodass ein Fehler auftritt.
Lösung:
Unterschiedliche Betriebssysteme führen zu einer inkonsistenten Groß-/Kleinschreibung. Wenn wir entwickeln, sollten wir nach dem Prinzip der Groß-/Kleinschreibung entwickeln, damit das entwickelte Programm mit verschiedenen Betriebssystemen kompatibel sein kann. Daher wird empfohlen, den Wert von „lower_case_table_names“ in der Entwicklungs- und Testumgebung auf 0 zu setzen, um die Groß-/Kleinschreibung des Codes während der Entwicklung streng zu kontrollieren und die Kompatibilität und Genauigkeit des Codes zu verbessern. In diesem Artikel wird das Problem der Groß-/Kleinschreibung bei der Konfiguration von MySQL erläutert. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
So verwenden Sie PHP, um Arrays zusammenzuführen und Schlüsselwerte beizubehalten
So verwenden Sie phpcurl zur Implementierung Multiprozess-Download-Dateiklasse
So ermitteln Sie über PHP, ob lokale und Remote-Dateien vorhanden sind
Das obige ist der detaillierte Inhalt vonInterpretation von MySQL-Konfigurationsproblemen, bei denen die Groß-/Kleinschreibung beachtet wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!