Lösung für das Problem, dass MySQL nach dem Ändern des Standardpfads der Datenbank nicht gestartet werden kann

Lösung für das Problem, dass MySQL nach dem Ändern des Standardpfads der Datenbank nicht gestartet werden kann

Vorwort

Als MySQL den Standarddatenbankpfad änderte, konnte der Dienst nicht gestartet werden. Nach der Überprüfung des Protokolls wurde festgestellt, dass ein Fehler bei der Dateiberechtigung vorlag.

Für das geänderte Verzeichnis wurde mysql als Eigentümer des Verzeichnisses festgelegt! Und alles ist normal, wenn Sie die Datenbank direkt von der Befehlszeile aus starten.

Ich habe das allmächtige Google benutzt und den Grund schließlich in einem Beitrag eines Ausländers gefunden – ein Problem mit der SELINUX-Richtlinie!

Alle Hintergrunddienste müssen über entsprechende Berechtigungen für die entsprechenden Verzeichnisse verfügen, und der Standardpfad von mysql /var/lib/mysql hat entsprechende Richtlinien hinzugefügt. Nachdem der Pfad geändert wurde, wird der Hintergrundprozess aufgrund des Fehlens entsprechender Richtlinien von selinux daran gehindert, Dateien zu lesen, was zu Berechtigungsfehlern führt!

So geht's:

MySQL, die Methode ist:

chcon -R -t mysqld_db_t /db/mysql

Wenn es APACHE ist, ist die Methode:

# chcon -R -h -t httpd_sys_content_t /www/web/

Angehängte Hilfe zum chcon-Befehl

Befehl chcon: Ändern Sie den Sicherheitskontext eines Objekts (einer Datei) (z. B.: Benutzer: Rolle: Typ: Sicherheitsstufe).

Befehlsformat:

Chcon [OPTIONEN…] KONTEXTDATEIEN…..
Chcon [OPTIONEN…] –reference=PEF_FILES DATEIEN

veranschaulichen:

CONTEXT ist der festzulegende Sicherheitskontext

FILES-Objekt (Dateien)

--reference Referenzobjekt

PEF_FILES Verweisen auf Dateikontext

Die FILES-Anwendung bezeichnet den Dateikontext als meinen Kontext.

OPTIONEN sind wie folgt:

-f Ausführung erzwingen

-R Den Sicherheitskontext eines Objekts rekursiv ändern

-r ROLE Ändern Sie die Konfiguration der Sicherheitskontextrolle

-t TYPE Ändert die Konfiguration des Sicherheitskontexttyps

-u USER Ändert die Konfiguration des Sicherheitskontextbenutzers

-v zeigt ausführliche Informationen an

-l, --range=RANGE Ändern Sie die Sicherheitsstufe im Sicherheitskontext

MySQL, die Methode ist:

chcon -R -t mysqld_db_t /db/mysql

Beispiele

Wenn Sie diesen FTP für anonyme Benutzer freigeben möchten, müssen Sie Folgendes aktivieren:

chcon -R -t öffentlicher_inhalt_t /var/ftp

Wenn Sie das Hochladen von Dateien in das von Ihnen festgelegte FTP-Verzeichnis zulassen möchten, muss SELINUX festgelegt werden:

chcon -t public_content_rw_t /var/ftp/eingehend

Erlauben Sie Benutzern den Zugriff auf ihr Home-Verzeichnis über HTTP. Diese Einstellung ist auf die Startseite des Home-Verzeichnisses des Benutzers beschränkt:

setsebool -P httpd_enable_homedirs 1 chcon -R -t httpd_sys_content_t ~Benutzer/public_html

Wenn Sie das Samba-Verzeichnis mit anderen Benutzern teilen möchten, müssen Sie Folgendes festlegen:

chcon -t samba_share_t /Verzeichnis

Beim Freigeben des rsync-Verzeichnisses:

chcon -t public_content_t /Verzeichnisse

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:
  • Detaillierte Erläuterung des Fehlerproblems beim Festlegen des Standardwerts 0000-00-00 in den Datums- und Datums-/Uhrzeittypen der MySQL-Datenbank
  • Beispiel zum Ändern der Standarddatenbank in MySQL in Django
  • Detaillierte Erläuterung der Rolle der Standarddatenbank nach der MySQL-Installation

<<:  Der beste Weg, freigegebene Verzeichnisse beim Start von Ubuntu 16.04 unter Virtualbox automatisch zu mounten

>>:  vue + springboot realisiert den Login-Bestätigungscode

Artikel empfehlen

Warum brauchen wir Map, wenn wir in JavaScript bereits Object haben?

Inhaltsverzeichnis 1. Behandeln Sie Objekte nicht...

Detaillierte Erklärung von JavaScript zur Überwachung von Routenänderungen

Inhaltsverzeichnis Geschichte pushState() Methode...

Javascript zum Erzielen eines Trommeleffekts

In diesem Artikel wird der spezifische Code von J...

Die Hook-Funktion von Vue-Router implementiert Routing Guard

Inhaltsverzeichnis Überblick Globale Hook-Funktio...

vue-table implementiert das Hinzufügen und Löschen

In diesem Artikelbeispiel wird der spezifische Co...

So überwachen Sie den Linux-Serverstatus

Wir, insbesondere Linux-Ingenieure, haben täglich...

Detaillierte Erklärung zum Einrichten eines DNS-Servers unter Linux

1. DNS-Server-Konzept Die Kommunikation im Intern...

Vergessen Sie nicht, den HTML-Tag zu schließen

Das Erstellen von Webseiten, die Webstandards ents...

Lösung für Nginx-Installationsfehler

1. Entpacken Sie nginx-1.8.1.tar.gz 2. Entpacken ...

Detaillierte Erläuterung des automatischen Füllschreibens von CSS3-Flexboxen

In diesem Artikel wird hauptsächlich die Methode ...