Einige Hinweise zum Ändern des innodb_data_file_path-Parameters von MySQL

Einige Hinweise zum Ändern des innodb_data_file_path-Parameters von MySQL

Vorwort

innodb_data_file_path wird verwendet, um die InnoDB-Tablespace-Datei anzugeben. Wenn wir innodb_data_home_dir und innodb_data_file_path in der Datei My.cnf nicht angeben, wird ibdata1 standardmäßig als InnoDB-Tablespace im Verzeichnis datadir erstellt.

veranschaulichen

In der Testumgebung wurde der Dienst initialisiert und gestartet, ohne zu viele detaillierte Parameter festzulegen. Beim anschließenden Optimierungsprozess stellte sich heraus, dass der innodb_data_file_path zu klein eingestellt war:

root@node1 14:59: [(keine)]> Variablen wie „%innodb_data_file_path%“ anzeigen;
+----------------------+------------------------+
| Variablenname | Wert |
+----------------------+------------------------+
| innodb_data_file_path | ibdata1:12M:autoextend |
+----------------------+------------------------+
1 Zeile im Satz (0,00 Sek.)

root@node1 14:59: [(keine)]>

Wenn innodb_data_file_path nicht konfiguriert ist, lautet der Standardwert innodb_data_file_path = ibdata1:12M:autoextend

[mysqld]
innodb_data_file_path = ibdata1:12M:autoextend

Wenn Sie es auf 1G ändern müssen, können Sie ibdata1 in der Konfigurationsdatei nicht direkt auf 1G ändern.

[mysqld]
innodb_data_file_path = ibdata1:1G:autoextend

Andernfalls wird Ihnen nach dem Starten des Dienstes folgender Fehler im Fehlerprotokoll angezeigt:

2019-03-29T06:47:32.044316Z 0 [FEHLER] InnoDB: Die automatisch erweiterbare innodb_system-Datendatei „./ibdata1“ hat eine andere Größe von 768 Seiten (abgerundet auf MB) als in der CNF-Datei angegeben: anfänglich 65536 Seiten, maximal 0 (relevant, wenn ungleich Null) Seiten!

Die allgemeine Bedeutung ist, dass die Größe von ibdata1 nicht 65536page*16KB/1024KB=1G ist, sondern 786page*16KB/1024KB=12M
(Komprimierte Seiten werden nicht verwendet)

Methode 1: Empfohlen

Fügen Sie stattdessen ein weiteres ibdata2:1G wie folgt hinzu:

[mysqld]
innodb_data_file_path = ibdata1:12M;ibdata2:1G:autoextend

Starten Sie die Datenbank neu!

Methode 2: Nicht empfohlen

Wechseln Sie direkt zu folgendem

[mysqld]
innodb_data_file_path = ibdata1:1G:autoextend

Sie können die Dateien ibdata1, ib_logfile0 und ib_logfile1 im Verzeichnis $mysql_datadir löschen:

rm -f ibdata* ib_logfile*

Sie können MySQL auch starten, aber der folgende Fehler wird im MySQL-Fehlerprotokoll gemeldet:

2019-03-29T07:10:47.844560Z 0 [Warnung] Die Anzahl der max_open_files konnte nicht auf über 5000 erhöht werden (Anforderung: 65535)
2019-03-29T07:10:47.844686Z 0 [Warnung] Geänderte Grenzwerte: table_open_cache: 1983 (angefordert 2000)
2019-03-29T07:10:48.028262Z 0 [Warnung] Der SQL-Modus „NO_AUTO_CREATE_USER“ wurde nicht festgelegt.
2019-03-29T07:10:48.147653Z 0 [Warnung] InnoDB: Die Tabelle mysql/plugin kann nicht aus dem internen Datenwörterbuch von InnoDB geöffnet werden, obwohl die .frm-Datei für die Tabelle vorhanden ist. Informationen zur Lösung des Problems finden Sie unter http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html.
mysqld: Tabelle 'mysql.plugin' existiert nicht
2019-03-29T07:10:48.147775Z 0 [FEHLER] Die Tabelle mysql.plugin kann nicht geöffnet werden. Führen Sie bitte mysql_upgrade aus, um sie zu erstellen.
2019-03-29T07:10:48.163444Z 0 [Warnung] InnoDB: Die Tabelle mysql/gtid_executed kann nicht aus dem internen Datenwörterbuch von InnoDB geöffnet werden, obwohl die .frm-Datei für die Tabelle vorhanden ist. Informationen zur Lösung des Problems finden Sie unter http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html.
mysqld: Tabelle 'mysql.gtid_executed' existiert nicht
2019-03-29T07:10:48.163502Z 0 [Warnung] Die Gtid-Tabelle ist nicht zur Verwendung bereit. Tabelle „mysql.gtid_executed“ kann nicht geöffnet werden.
2019-03-29T07:10:48.163658Z 0 [Warnung] InnoDB: Die Tabelle mysql/gtid_executed kann nicht aus dem internen Datenwörterbuch von InnoDB geöffnet werden, obwohl die .frm-Datei für die Tabelle vorhanden ist. Informationen zur Lösung des Problems finden Sie unter http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html.
mysqld: Tabelle 'mysql.gtid_executed' existiert nicht
2019-03-29T07:10:48.163711Z 0 [Warnung] Die Gtid-Tabelle ist nicht zur Verwendung bereit. Tabelle „mysql.gtid_executed“ kann nicht geöffnet werden.
2019-03-29T07:10:48.164619Z 0 [Warnung] SSL konnte aufgrund des folgenden SSL-Bibliotheksfehlers nicht eingerichtet werden: SSL-Kontext ist ohne Zertifikat und privaten Schlüssel nicht nutzbar
2019-03-29T07:10:48.166805Z 0 [Warnung] InnoDB: Tabelle mysql/server_cost kann nicht aus dem internen Datenwörterbuch von InnoDB geöffnet werden, obwohl die .frm-Datei für die Tabelle vorhanden ist. Informationen zur Lösung des Problems finden Sie unter http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html.
2019-03-29T07:10:48.166891Z 0 [Warnung] Die Kostenkonstantentabellen des Optimierers konnten nicht geöffnet werden.

2019-03-29T07:10:48.168072Z 0 [Warnung] InnoDB: Die Tabelle mysql/time_zone_leap_second kann nicht aus dem internen Datenwörterbuch von InnoDB geöffnet werden, obwohl die .frm-Datei für die Tabelle vorhanden ist. Informationen zur Lösung des Problems finden Sie unter http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html.
2019-03-29T07:10:48.168165Z 0 [Warnung] Zeitzonentabelle kann nicht geöffnet und gesperrt werden: Tabelle „mysql.time_zone_leap_second“ existiert nicht und versucht, ohne sie auszukommen
2019-03-29T07:10:48.169454Z 0 [Warnung] InnoDB: Die Tabelle mysql/servers kann nicht aus dem internen Datenwörterbuch von InnoDB geöffnet werden, obwohl die .frm-Datei für die Tabelle vorhanden ist. Informationen zur Lösung des Problems finden Sie unter http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html.
2019-03-29T07:10:48.169527Z 0 [FEHLER] Berechtigungstabellen können nicht geöffnet und gesperrt werden: Tabelle „mysql.servers“ existiert nicht
2019-03-29T07:10:48.170042Z 0 [Warnung] InnoDB: Die Tabelle mysql/slave_master_info kann nicht aus dem internen Datenwörterbuch von InnoDB geöffnet werden, obwohl die .frm-Datei für die Tabelle vorhanden ist. Informationen zur Lösung des Problems finden Sie unter http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html.
2019-03-29T07:10:48.170617Z 0 [Warnung] InnoDB: Die Tabelle mysql/slave_relay_log_info kann nicht aus dem internen Datenwörterbuch von InnoDB geöffnet werden, obwohl die .frm-Datei für die Tabelle vorhanden ist. Informationen zur Lösung des Problems finden Sie unter http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html.
2019-03-29T07:10:48.170946Z 0 [Warnung] InnoDB: Die Tabelle mysql/slave_master_info kann nicht aus dem internen Datenwörterbuch von InnoDB geöffnet werden, obwohl die .frm-Datei für die Tabelle vorhanden ist. Informationen zur Lösung des Problems finden Sie unter http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html.
2019-03-29T07:10:48.171046Z 0 [Warnung] Die Infotabelle ist nicht zur Verwendung bereit. Tabelle „mysql.slave_master_info“ kann nicht geöffnet werden.
2019-03-29T07:10:48.171272Z 0 [Warnung] InnoDB: Die Tabelle mysql/slave_worker_info kann nicht aus dem internen Datenwörterbuch von InnoDB geöffnet werden, obwohl die .frm-Datei für die Tabelle vorhanden ist. Informationen zur Lösung des Problems finden Sie unter http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html.
2019-03-29T07:10:48.171626Z 0 [Warnung] InnoDB: Die Tabelle mysql/slave_relay_log_info kann nicht aus dem internen Datenwörterbuch von InnoDB geöffnet werden, obwohl die .frm-Datei für die Tabelle vorhanden ist. Informationen zur Lösung des Problems finden Sie unter http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html.
2019-03-29T07:10:48.171688Z 0 [Warnung] Die Infotabelle kann nicht verwendet werden. Die Tabelle „mysql.slave_relay_log_info“ kann nicht geöffnet werden.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Unterschied zwischen MySQL Btree-Index und Hash-Index
  • Ein kurzes Verständnis der Unterschiede zwischen MySQL InnoDB und MyISAM
  • Beschreiben Sie kurz die MySQL InnoDB-Speicher-Engine
  • Detaillierte Erläuterung der MySQL Innodb-Speicherstruktur und der Speicherung von Nullwerten
  • MySQL-Startfehler InnoDB: Sperren nicht möglich/ibdata1-Fehler
  • Detaillierte Erklärung, wie MySQL (InnoDB) mit Deadlocks umgeht
  • So ändern Sie die MySQL-Engine (InnoDB, MyISAM)
  • InnoDB-Konfigurationsparameter, die die MySQL-Leistung verbessern können
  • MySQL-Fehler: MySQL-Serverversion für die richtige Syntax, die in der Nähe der Lösung type=InnoDB verwendet werden soll
  • Lösung für den Startfehler der MySQL-Datenbank InnoDB und die Unfähigkeit, sie neu zu starten
  • So ermitteln Sie die Höhe des MySQL InnoDB B+-Baums

<<:  Funktionsprinzip und Implementierungsmethode der Vue-Anweisung

>>:  Implementierung der TCPWrappers-Zugriffskontrolle in Centos

Artikel empfehlen

Webdesign: Implementierungstechniken für Webmusik

<br />Wenn Sie Musik in eine Webseite einfüg...

Grundlegende Anweisungen der MySQL-Datendefinitionssprache DDL

MySQL DDL-Anweisungen Was ist DDL, DML. DDL ist e...

So beenden Sie den MySQL-Prozess ordnungsgemäß und sicher

Vorwort In diesem Artikel wird der Vorgang zum He...

Beispiel, wie nginx dynamische und statische Trennung implementiert

Inhaltsverzeichnis Stellen Sie nginx auf Server1 ...

Fehlerbehebung bei der Ursache des 502 Bad Gateway-Fehlers auf dem Nginx-Server

Der Server meldet einen Fehler 502 beim Synchroni...

Installation und Daemon-Konfiguration von Redis unter Windows und Linux

# Installations-Daemon-Konfiguration für Redis un...

js, um einen Boden-Scrolling-Effekt zu erzielen

In diesem Artikel wird jQuery verwendet, um den E...

Rastersysteme im Webdesign

Bildung des Gittersystems Im Jahr 1692 war der fr...

12 Javascript-Tabellensteuerelemente (DataGrid) sind aussortiert

Wenn die DataSource-Eigenschaft eines DataGrid-Ste...

So führen Sie py-Dateien direkt unter Linux aus

1. Erstellen Sie zuerst die Datei (wechseln Sie p...