Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was tun, wenn die MySQL-Autorisierung des Docker-Containers fehlschlägt?

Was tun, wenn die MySQL-Autorisierung des Docker-Containers fehlschlägt?

PHPz
PHPzOriginal
2023-04-18 09:47:07749Durchsuche

In den letzten Jahren wurde die Docker-Container-Technologie immer häufiger in verschiedenen Anwendungsszenarien eingesetzt. Sie bietet eine leichte, schnelle Bereitstellungs- und Verwaltungsmethode, die die Anwendungsentwicklung sowie den Betrieb und die Wartung effizienter macht. Bei der Verwendung der Docker-Containertechnologie können einige Probleme auftreten, z. B. ein MySQL-Autorisierungsfehler im Container. In diesem Artikel wird erläutert, wie Sie dieses Problem beheben können.

Ein MySQL-Autorisierungsfehler in einem Docker-Container kann zu Problemen wie einer Zugriffsverweigerung führen. Diese Situation wird normalerweise dadurch verursacht, dass die Benutzerautorisierung im Container nicht korrekt eingestellt ist. In Docker-Containern gibt es zwei Hauptmethoden für die MySQL-Benutzerautorisierung: passwortbasierte Autorisierung und Authentifizierungs-Plug-in-basierte Autorisierung.

Passwortbasierte Autorisierung

Bei der passwortbasierten Autorisierung müssen MySQL-Benutzer ein Kontopasswort im Container erstellen und diese Anmeldeinformationen für die Autorisierung verwenden, wenn sie von außen auf den Container zugreifen. Ein MySQL-Konto kann erstellt werden, indem die folgenden Schritte ausgeführt werden:

  1. Geben Sie den MySQL-Server in den Docker-Container ein.

Zuerst müssen wir den MySQL-Server in den Container eingeben. Dies kann mit dem folgenden Befehl erreicht werden:

docker exec -it mysql-container mysql -u root -p

Dieser Befehl startet ein interaktives Terminal und stellt eine Verbindung zum MySQL-Server im Container her.

  1. Neuen Benutzer erstellen

Im MySQL-Terminal können Sie mit dem folgenden Befehl einen neuen Benutzer erstellen:

CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';

wobei „newuser“ der Benutzername des neuen Benutzers ist und „%“ bedeutet, dass der Benutzer sein kann Der Zugriff erfolgt über eine beliebige IP-Adresse. „Passwort“ ist das Passwort des neuen Benutzers.

  1. Neue Benutzer autorisieren

Ähnlich können Sie im MySQL-Terminal neue Benutzer mit dem folgenden Befehl autorisieren:

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';

Dieser Befehl gewährt dem neuen Benutzer Zugriff auf alle Datenbanken und Tabellen.

  1. Berechtigungen aktualisieren

Damit die Änderungen wirksam werden, müssen wir schließlich die Berechtigungen aktualisieren:

FLUSH PRIVILEGES;

Jetzt wurde der neue Benutzer erfolgreich erstellt und autorisiert, von außen mit seinem Benutzernamen und auf den MySQL-Container zuzugreifen Passwort.

Authentifizierungs-Plugin-basierte Autorisierung

Bei der Authentifizierungs-Plugin-basierten Autorisierung verwendet der MySQL-Server externe Authentifizierungs-Plugins zur Benutzerauthentifizierung, z. B. mithilfe von SSL-Zertifikaten, Kerberos usw., um Benutzer sicherer zu authentifizieren. In einem Docker-Container kann das Authentifizierungs-Plugin mit den folgenden Schritten eingerichtet werden:

  1. Installieren Sie das Plugin im MySQL-Container

Um das Authentifizierungs-Plugin verwenden zu können, müssen wir das Plugin auf dem MySQL-Server installieren Docker-Container. Dies kann durch Befolgen dieser Schritte erreicht werden:

docker cp auth_plugin.so mysql-container:/usr/lib/mysql/plugin/

Dieser Befehl kopiert die Plugin-Datei auth_plugin.so in das Verzeichnis /usr/lib/mysql/plugin/ im Container.

  1. Plugin aktivieren

Dann müssen wir das Plugin in der MySQL-Konfigurationsdatei aktivieren. Die Konfigurationsdatei kann mit dem folgenden Befehl geändert werden:

docker exec -it mysql-container bash
vi /etc/mysql/my.cnf

In dem Abschnitt, in dem das Authentifizierungs-Plugin aktiviert ist, muss die folgende Zeile hinzugefügt werden:

[mysqld]
plugin-load = auth_plugin.so
  1. Benutzer erstellen

Im MySQL-Terminal müssen wir erstellen Ein Benutzer basierend auf dem Plugin kann dies über den folgenden Befehl erfolgen:

CREATE USER 'newuser'@'%' IDENTIFIED WITH auth_plugin AS 'cred';

wobei „newuser“ der Benutzername des neuen Benutzers ist, „%“ bedeutet, dass auf den Benutzer von jeder IP-Adresse aus zugegriffen werden kann, und „ „cred“ ist eine verschlüsselte Anmeldeinformationszeichenfolge, die zur Überprüfung bei der Verwendung des Plugin-Benutzers verwendet wird.

  1. Autorisieren Sie den neuen Benutzer

Ähnlich müssen wir im MySQL-Terminal den neuen Benutzer mit dem folgenden Befehl autorisieren:

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';

Dieser Befehl gewährt dem neuen Benutzer Zugriff auf alle Datenbanken und Tabellen.

  1. Berechtigungen aktualisieren

Abschließend müssen wir die Berechtigungen aktualisieren:

FLUSH PRIVILEGES;

Jetzt wurde der Plugin-basierte Benutzer erfolgreich erstellt und autorisiert und kann mit seinen Anmeldeinformationen von außen auf den MySQL-Container zugreifen.

Zusammenfassung

In einem Docker-Container kann ein MySQL-Autorisierungsfehler zu Problemen wie einer Zugriffsverweigerung führen. In diesem Artikel werden zwei MySQL-Benutzerautorisierungsmethoden vorgestellt: die passwortbasierte Autorisierung und die Authentifizierungs-Plug-in-basierte Autorisierung. Unabhängig davon, welche Methode verwendet wird, muss die Benutzerberechtigung korrekt eingerichtet sein, um von außen auf den MySQL-Server im Container zugreifen zu können.

Das obige ist der detaillierte Inhalt vonWas tun, wenn die MySQL-Autorisierung des Docker-Containers fehlschlägt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn