MySQL meldet einen Fehler: Datei kann nicht gefunden werden: './mysql/plugin.frm' Lösung

MySQL meldet einen Fehler: Datei kann nicht gefunden werden: './mysql/plugin.frm' Lösung

Finden Sie das Problem

Kürzlich habe ich bei der Arbeit ein Problem festgestellt. Das Problem war, dass die MySQL-Festplatte voll war. Ich habe die Datenbankverzeichnisdaten in das Verzeichnis /data3 verschoben, das entsprechende Verzeichnis datadir in /etc/my.cnf geändert und Berechtigungen erteilt. Beim Starten des MySQL-Dienstes ist jedoch ein Fehler aufgetreten. Ich werde im Folgenden nicht viel dazu sagen. Schauen wir uns die detaillierte Lösung an.

Das Fehlerprotokoll zeigt Folgendes:

15.09.2017 16:01:01 2420 [Warnung] Die Verwendung des eindeutigen Optionspräfixes myisam-recover anstelle von myisam-recover-options ist veraltet und wird in einer zukünftigen Version entfernt. Bitte verwenden Sie stattdessen den vollständigen Namen.
15.09.2017 16:01:01 2420 [Hinweis] Plugin „FEDERATED“ ist deaktiviert.
^G/usr/sbin/mysqld: Datei nicht gefunden: „./mysql/plugin.frm“ (Fehlernummer: 13 – Zugriff verweigert)
15.09.2017 16:01:01 2420 [FEHLER] Die Tabelle mysql.plugin kann nicht geöffnet werden. Führen Sie bitte mysql_upgrade aus, um sie zu erstellen.
2017-09-15 16:01:01 2420 [Anmerkung] InnoDB: Verwenden von Atomen zum Referenzieren der Anzahl von Pufferpoolseiten
2017-09-15 16:01:01 2420 [Hinweis] InnoDB: Der InnoDB-Speicherheap ist deaktiviert
2017-09-15 16:01:01 2420 [Anmerkung] InnoDB: Mutexe und rw_locks verwenden atomare Builtins von GCC
2017-09-15 16:01:01 2420 [Hinweis] InnoDB: Speicherbarriere wird nicht verwendet
2017-09-15 16:01:01 2420 [Hinweis] InnoDB: Komprimierte Tabellen verwenden zlib 1.2.8
2017-09-15 16:01:01 2420 [Anmerkung] InnoDB: Verwendung von Linux nativem AIO
2017-09-15 16:01:01 2420 [Hinweis] InnoDB: Verwenden von CPU-CRC32-Anweisungen
15.09.2017 16:01:01 2420 [Hinweis] InnoDB: Pufferpool wird initialisiert, Größe = 128,0 M
15.09.2017 16:01:02 2420 [Hinweis] InnoDB: Initialisierung des Pufferpools abgeschlossen
2017-09-15 16:01:02 2420 [FEHLER] InnoDB: ./ibdata1 kann nicht im Lese-/Schreibmodus geöffnet werden
15.09.2017 16:01:02 2420 [FEHLER] InnoDB: Der Systemtabellenbereich muss beschreibbar sein!
15.09.2017 16:01:02 2420 [FEHLER] Die Initialisierungsfunktion des Plugins „InnoDB“ hat einen Fehler zurückgegeben.
15.09.2017 16:01:02 2420 [FEHLER] Die Registrierung des Plugins „InnoDB“ als STORAGE ENGINE ist fehlgeschlagen.
2017-09-15 16:01:02 2420 [FEHLER] Unbekannte/nicht unterstützte Speicher-Engine: InnoDB
2017-09-15 16:01:02 2420 [FEHLER] Abbruch

Überprüfen Sie zuerst die Berechtigungen von plugin.frm. frm ist die MySQL-Tabellenstrukturdefinitionsdatei. Normalerweise wird die frm-Datei nicht beschädigt. Wenn die frm-Datei jedoch unter besonderen Umständen beschädigt wird, geben Sie die Hoffnung nicht auf. Beim Reparieren von MyISAM- und InnoDB-Tabellen ruft der MySQL-Dienst zuerst die frm-Datei auf, sodass wir eine nachfolgende Datenwiederherstellung nur durch Reparieren der frm-Datei durchführen können.

Dann haben wir festgestellt, dass plugin.frm über Berechtigungen verfügt und auch der Eigentümer von MySQL ist:

root@hutaojie-1-pdd-sh:/data1/mysql/mysql# ll-Plugin.*
-rwxrwxrwx 1 mysql mysql 8586 6. März 2016 plugin.frm*
-rwxrwx--x 1 mysql mysql 116 6. März 2016 plugin.MYD*
-rwxrwx--x 1 mysql mysql 2048 6. März 2016 plugin.MYI*
root@hutaojie-1-pdd-sh:/data1/mysql/mysql#

Nach einer Suche bei Google stellte ich fest, dass das Problem beim Betriebssystem lag. Bei der Installation von Ubuntus MySQL über yum oder rpm wird eine Datei /etc/apparmor.d/usr.sbin.mysqld erstellt. Wenn das Datenverzeichnis nicht darin enthalten ist, wird ein Fehler gemeldet.

/usr/sbin/mysqld: Datei nicht gefunden: „./mysql/plugin.frm“ (Fehlernummer: 13 – Berechtigung verweigert)

Problemumgehung

Die Lösung besteht also darin, ein neues Datadir-Verzeichnis hinzuzufügen.

root@huayuan:/var/lib# vim /etc/apparmor.d/usr.sbin.mysqld 

# vim:syntax=apparmor
# Letzte Änderung: Di 19 Jun 17:37:30 2007
#include <tunables/global>

/usr/sbin/mysqld {
 #include <Abstraktionen/Basis>
 #include <Abstraktionen/Namensdienst>
 #include <Abstraktionen/Benutzer-Temp>
 #include <abstractions/mysql>
 #include <Abstraktionen/Winbind>

 Fähigkeit dac_override,
 Fähigkeit sys_resource,
 Fähigkeit setgid,
 Fähigkeit setuid,

 Netzwerk-TCP,

 /run/mysqld/mysqld.pid rw,
 /run/mysqld/mysqld.sock w,

 /sys/geräte/system/cpu/ r,
 #.........Schreiben Sie hier das neue Datadir-Verzeichnis, schreiben Sie 2 Zeilen, eine Zeile r und eine Zeile rwk.
 /data3/mysql/ r,
 /data3/mysql/** rwk,
 # Site-spezifische Ergänzungen und Überschreibungen. Weitere Einzelheiten finden Sie in der lokalen README-Datei.
 #include <local/usr.sbin.mysqld>
}

Starten Sie dann die MySQL-Instanz neu, ok, das Problem ist gelöst.

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. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Lösung für den MySql-Fehler „Tabelle mysql.plugin existiert nicht“
  • Die perfekte Lösung für MySQL automatische Stopp-Plugin FEDERATED ist deaktiviert
  • Lösung für das Problem „Tabelle mysql.plugin existiert nicht“ beim Deployment von MySQL

<<:  Drei Möglichkeiten, um zu überprüfen, ob ein Port in einem Remote-Linux-System geöffnet ist

>>:  JavaScript implementiert eine Seiten-Scrolling-Animation

Artikel empfehlen

Detaillierte Erklärung der jQuery-Kettenaufrufe

Inhaltsverzeichnis Kettenanrufe Ein kleiner Koffe...

Analysieren Sie die Dauer von TIME_WAIT aus dem Linux-Quellcode

Inhaltsverzeichnis 1. Einleitung 2. Lassen Sie un...

Spezifische Verwendung des Stapelkontexts in CSS

Vorwort Unter dem Einfluss einiger CSS-Interaktio...

Lösung für Überlauf: versteckter Fehler in CSS

Ursache des Fehlers Als ich heute ein Karussell s...

Sieben Prinzipien eines guten Designers (2): Farbgebrauch

<br />Vorheriger Artikel: Sieben Prinzipien ...

React-Prinzipien erklärt

Inhaltsverzeichnis 1. setState() Beschreibung 1.1...

React-Implementierungsbeispiel mit Amap (react-amap)

Die PC-Version von React wurde für die Verwendung...

Anzeigemodus von Elementen in CSS

In CSS werden Element-Tags entsprechend den unter...

Eine Falle und Lösung bei der Verwendung von fileReader

Inhaltsverzeichnis Eine Falle bei fileReader Fall...

So beheben Sie Dateisystemfehler in Linux mit „fsck“

Vorwort Das Dateisystem ist für die Organisation ...

Was bedeutet das n nach int(n) in MySQL?

Sie wissen vielleicht bereits, dass die Länge 1 v...

Detaillierte Erklärung der Anwendung von CSS Sprite

CSS Sprite, auch bekannt als CSS Sprite, ist eine...

Mehrere Möglichkeiten zum Festlegen der Ablaufzeit von localStorage

Inhaltsverzeichnis Problembeschreibung 1. Basislö...