Detaillierte Erklärung der Fallstricke bei der Aufzeichnung von lower_case_table_names in MySQL

Detaillierte Erklärung der Fallstricke bei der Aufzeichnung von lower_case_table_names in MySQL

1 Ursache

Nachdem das Projekt die Datenbank migriert und neu gestartet hat, wurde die Fehlermeldung „T_AAA-Tabelle existiert nicht“ angezeigt, aber die Tabelle ist in der Datenbank sichtbar und enthält Daten

2 Problemanalyse

Installieren Sie das System und die Datenbank neu, um zu bestätigen, dass das System und die Datenbank sauber sind. Beseitigen Sie das System und die Datenbank als Ursache. Verwenden Sie dieselbe Methode, um die Datensicherung von vor zwei Tagen und vor einem Tag wiederherzustellen. Das Projekt kann immer noch nicht gestartet werden. Beseitigen Sie die Ursache des Dateninhalts. Verwenden Sie mysqldump und exportieren Sie SQL-Dateien, um die Daten von vor einem Tag wiederherzustellen. Das Projekt kann immer noch nicht gestartet werden. Beseitigen Sie die Ursache der Wiederherstellungsmethode.

Die oben genannten Methoden werden grundsätzlich von Betriebs- und Wartungspersonal durchgeführt. Nachdem der technische Direktor an der Beobachtung des Projektfehlers teilgenommen hatte, stellte er plötzlich fest, dass es sich um ein Problem mit der Groß- und Kleinschreibung des Tabellennamens handelte. Die Ursache wurde schließlich durch Tests ermittelt:
Verwenden Sie das RPM-Paket, um die Datenbank zu installieren. Setzen Sie lower_case_table_names während der automatischen Initialisierung auf 0. Der Tabellenname ist groß- und kleingeschrieben, in der Datenbank klein und im Code großgeschrieben.

3 Lösungen

  • Löschen Sie die initialisierte Datenbank, d. h. base_dir, data_dir usw.
  • Initialisieren Sie die Datenbank neu und setzen Sie lower_case_table_names auf 1
  • Wiederherstellen gesicherter Daten

4 Fazit

Für MySQL 8.0 und höher kann der Parameter „lower-case-table-names“ nur während der Initialisierung festgelegt werden und ist nicht durch Ändern von my.cnf möglich (das Hinzufügen einer Konfiguration zu my.cnf führt zu einem Fehler).

Um die Datenbank zu initialisieren, müssen Sie MySQL nicht komplett deinstallieren und neu installieren. Sie müssen nur den Befehl mysqld verwenden.

Die Benutzergruppe von base_dir sollte mysql sein. Der Befehl unter Linux lautet:

chown -R mysql.mysql MySQL-Datenpfad (d. h. Basisverzeichnis)

Rekursives Erstellen von Verzeichnissen unter Linux

mkdir -p mysql/lib/mysql-dateien

MySQL-Neuinitialisierung

mysqld -initialize --lower-case-table-names=1

Für MySQL 8.0 und höher müssen Sie zuerst einen Benutzer erstellen und dann Berechtigungen erteilen

Erstellen Sie den Benutzer „test“@„%“, identifiziert durch „test“;
-- mit Option können Sie anderen Benutzern Berechtigungen erteilen. Erteilen Sie für test.* alle Privilegien an „test“@„%“ mit Option;

Dies ist das Ende dieses Artikels über die Fallstricke beim Aufzeichnen von lower_case_table_names in MySQL. Weitere relevante MySQL lower_case_table_names-Inhalte finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung der Fallstricke von MySQL 8.0
  • Einige Fallstricke, auf die Entwickler nach dem Upgrade auf MySQL 5.7 achten müssen
  • Eine kurze Diskussion über die Fallstricke und Lösungen der neuen Features von MySQL 8.0 (Zusammenfassung)
  • Lösung für das Problem der Nullspalte in der NOT IN-Füllgrube in MySQL
  • So verwenden Sie den temporären MySQL 5.7-Tablespace, um Fallstricke zu vermeiden
  • Bei der kostenlosen Installationsversion von MySQL 5.7.19 sind Fallstricke aufgetreten (Sammlung)
  • Fallstricke bei der Installation des komprimierten MySQL 8.0.18-Pakets und beim Zurücksetzen vergessener Passwörter
  • Teilen Sie den Installationsdatensatz für MySql8.0.19

<<:  Zusammenfassung der 16 XHTML1.0- und HTML-Kompatibilitätsrichtlinien

>>:  Reiner CSS-Header, korrigierter Implementierungscode

Artikel empfehlen

Reagiert auf verschiedene Arten, Parameter zu übergeben

Inhaltsverzeichnis Übergeben von Parametern zwisc...

So konfigurieren Sie einfach mehrere Server in Nginx

1: Ich werde nicht näher auf die Installation von...

Textmodus im IE! Einführung in die Rolle von DOCTYPE

Nachdem das im vorherigen Artikel besprochene Prob...

So implementieren Sie einen binären Suchbaum mit JavaScript

Eine der am häufigsten verwendeten und diskutiert...

Führen Sie die Schritte zum Upgrade von Nginx http auf https aus.

Der Unterschied zwischen http und https ist Bei m...

VUE+Canvas realisiert den gesamten Prozess eines einfachen Gobang-Spiels

Vorwort In Bezug auf das Layout ist Gobang viel e...

Detaillierte Erläuterung der MySQL 8.0-Richtlinie zum Ablauf von Passwörtern

Ab MySQL 8.0.16 können Sie eine Richtlinie zum Ab...

Details der MySQL-Berechnungsfunktion

Inhaltsverzeichnis 2. Feldverkettung 2. Geben Sie...