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:
|
<<: Drei Möglichkeiten, um zu überprüfen, ob ein Port in einem Remote-Linux-System geöffnet ist
>>: JavaScript implementiert eine Seiten-Scrolling-Animation
Inhaltsverzeichnis Kettenanrufe Ein kleiner Koffe...
Inhaltsverzeichnis 1. Einleitung 2. Lassen Sie un...
1. Installieren Sie Abhängigkeitspakete [root@loc...
Vorwort Unter dem Einfluss einiger CSS-Interaktio...
Ursache des Fehlers Als ich heute ein Karussell s...
<br />Vorheriger Artikel: Sieben Prinzipien ...
Inhaltsverzeichnis 1. setState() Beschreibung 1.1...
Die PC-Version von React wurde für die Verwendung...
In CSS werden Element-Tags entsprechend den unter...
Inhaltsverzeichnis Eine Falle bei fileReader Fall...
Vorwort Das Dateisystem ist für die Organisation ...
Sie wissen vielleicht bereits, dass die Länge 1 v...
Laden Sie MySQL herunter https://dev.mysql.com/do...
CSS Sprite, auch bekannt als CSS Sprite, ist eine...
Inhaltsverzeichnis Problembeschreibung 1. Basislö...