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

Verständnis und Anwendung des Destrukturierungsoperators von JavaScript ES6

Inhaltsverzeichnis Vorwort Die Rolle von Dekonstr...

Mit HTML+CSS3 implementierte Anmeldeschnittstelle

Ergebnisse erzielen Bauen Sie zunächst mit HTML e...

Einführung des Code-Prüftools stylelint zum Erfahrungsaustausch

Inhaltsverzeichnis Vorwort Text 1. Installieren S...

So ändern Sie die SSH-Portnummer in der Centos8-Umgebung

Inhaltsverzeichnis Vorwort Start Vorwort Die Stan...

SQL-Implementierung von LeetCode (197. Steigende Temperatur)

[LeetCode] 197.Steigende Temperatur Schreiben Sie...

In einem Artikel erfahren Sie, wie Sie mit js den Sperrfeuereffekt erzielen

Inhaltsverzeichnis Erstellen Sie eine neue HTML-D...

So installieren Sie Jenkins mit Docker

Inhaltsverzeichnis 1. Ziehen Sie das Bild 2. Erst...

Schritte zum Erstellen eines WEBSERVERS mit NODE.JS

Inhaltsverzeichnis Was ist nodejs Installieren Si...

So stellen Sie ein SpringBoot-Projekt mit Docker bereit

Die Entwicklung der Docker-Technologie bietet ein...

Detailliertes Tutorial zum PyCharm- und SSH-Remote-Access-Server-Docker

Hintergrund: Einige Experimente müssen auf dem Se...

JS, CSS und HTML zur Implementierung der Registrierungsseite

Eine mit HTML und CSS implementierte Registrierun...

So deaktivieren Sie die Klartextanzeige und die Schnelllöschfunktion von IE10

IE10 bietet eine Schaltfläche zum schnellen Lösche...