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

So erstellen Sie einen Pod in Kubernetes

Inhaltsverzeichnis Wie erstelle ich einen Pod? We...

Transkript der Implementierung berechneter Vue-Eigenschaften

In diesem Artikel wird das Implementierungszeugni...

So schreiben Sie speichereffiziente Anwendungen mit Node.js

Inhaltsverzeichnis Vorwort Problem: Kopieren groß...

JS Leicht verständliche Funktion und Konstruktor

Inhaltsverzeichnis 1. Übersicht 1.1 Erstellen ein...

Beschreibung des Meta-Viewport-Attributs in der HTML-Webseite

Beschreibung der HTML-Meta-Viewport-Attribute Was...

Abrufen der Erstellungszeit einer Datei unter Linux und ein praktisches Tutorial

Hintergrund Manchmal müssen wir den Erstellungsze...

Implementierungscode für die nahtlose Verbindung des Div-Bildlaufbands

Code kopieren Der Code lautet wie folgt: <html...

JavaScript-Grundlagenreihe: Funktionen und Methoden

Inhaltsverzeichnis 1. Der Unterschied zwischen Fu...

Verwenden Sie die CSS-Eigenschaft border-radius, um den Bogen festzulegen

Phänomen: Wandeln Sie das Div in einen Kreis, ein...

Eine detaillierte Einführung in die Tomcat-Verzeichnisstruktur

Öffnen Sie das dekomprimierte Verzeichnis von Tom...

MySql-Abfrageanweisung mit mehreren Bedingungen und dem Schlüsselwort „OR“

Im vorherigen Artikel wurde die MySql-Abfrageanwe...