Heim >Betrieb und Instandhaltung >Docker >Was tun, wenn die MySQL-Autorisierung des Docker-Containers fehlschlägt?
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:
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.
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.
Ä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.
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:
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.
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
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.
Ä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.
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!