UmweltbedingungenMySQL 8.x wird über Docker bereitgestellt und die Startdatei docker-compose.yml lautet wie folgt: Version: "3.2" Leistungen: MySQL: Containername: MySQL Bild: "mysql:8.0" Häfen: - „3306:3306“ Befehl: [ "--character-set-server=utf8mb4", „--collation-server=utf8mb4_unicode_ci“, "--sql_mode=STRICT_TRANS_TABLES,KEIN_NULLDATUM,FEHLER_FÜR_DIVISION_DURCH_NULL,KEINE_ENGINE_SUBSTITUTION", ] Bände: - Typ: binden Quelle: ./mysql Ziel: /var/lib/mysql - Typ: binden Quelle: ./mysql-docker.cnf Ziel: /etc/mysql/conf.d/docker.cnf Umfeld: - MYSQL_RANDOM_ROOT_PASSWORD=ja -MYSQL_USER=meinBenutzer -MYSQL_PASSWORD=meinPasswort -MYSQL_DATABASE=meineDatenbank Neustart: immer Wenn Sie den Befehl „Docker-Compose“ zum ersten Mal starten, wird das MySQL 8.x-Image automatisch heruntergeladen. Nach dem erfolgreichen Start können Sie sehen, dass auch Port 3306 zugeordnet ist. An diesem Punkt ist MySQL normal installiert und gestartet. Aufgetretene FehlerAls nächstes stellte sich heraus, dass beim Herstellen einer Verbindung zum MySQL-Server über einen Datenbank-Client wie Navicat überhaupt keine Verbindung hergestellt werden konnte. Folgende Fehlertypen traten auf:
Problemumgehung Es gibt im Internet viele Methoden, um das Problem des Fernzugriffs durch das Festlegen von Datenbankbenutzerberechtigungen zu lösen, aber sie verfügen nur über die Kernschritte und es fehlt der Prozess. 1. Melden Sie sich beim MySQL-Docker an Wie aus der obigen Datei docker-compose.yml ersichtlich ist, ist das Kennwort des MySQL-Root-Benutzers nicht konfiguriert. [mysqld] Host-Cache überspringen Namensauflösung überspringen Fügen Sie die folgende Zeile hinzu, sodass für die Anmeldung bei MySQL kein Kennwort erforderlich ist. [mysqld] Host-Cache überspringen Namensauflösung überspringen Skip-Grant-Tabellen Starten Sie den Container nach dem Hinzufügen neu. Docker-Compose nach unten docker-compose up -d 2. Legen Sie das Root-Passwort festBetreten Sie den Container und melden Sie sich mit dem Root-Account beim MySQL-Server an. docker exec -it mysql /bin/bash mysql -uroot # Drücken Sie hier die Eingabetaste, um sich ohne Eingabe eines Kennworts beim Server anzumelden. mysql> flush privileges; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> ALTER USER 'root'@'localhost' IDENTIFIZIERT MIT mysql_native_password DURCH 'mysqlroot'; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> Berechtigungen leeren; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) Beachten Sie, dass Sie zuerst die Berechtigungen löschen müssen. Andernfalls schlägt die Kennwortänderung fehl. Beenden Sie dann den Container und stellen Sie die zugeordnete Datei /etc/mysql/conf.d/docker.cnf wieder her. [mysqld] Host-Cache überspringen Namensauflösung überspringen Löschen Sie die neu hinzugefügte Zeile und starten Sie den Container neu. Docker-Compose nach unten docker-compose up -d 3. Richten Sie Root-Remotezugriffsberechtigungen einNachdem Sie den Container neu gestartet haben, betreten Sie ihn erneut und legen Sie die Remote-Zugriffsberechtigungen für den Root-Benutzer fest. docker exec -it mysql /bin/bash mysql -uroot -p # Sie müssen das im vorherigen Schritt konfigurierte Passwort mysqlroot eingeben mysql> ALTER USER 'root'@'%' IDENTIFIZIERT MIT mysql_native_password DURCH 'mysqlroot'; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> Berechtigungen leeren; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) Konfigurieren Sie die Remote-Zugriffsberechtigungen mit „root“@„%“ anstelle von „root“@„localhost“ im vorherigen Schritt. Nach der Einstellung können Sie mit Navicat eine Verbindung herstellen, ohne den MySQL-Docker-Container neu zu starten. 4. Richten Sie den Fernzugriff für den normalen Benutzer myuser einBefolgen Sie die obigen Schritte, um die Remote-Verbindung für den normalen Benutzer myuser zu konfigurieren. mysql> ALTER USER 'myuser'@'%' IDENTIFIZIERT MIT mysql_native_password DURCH 'mypass'; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> Berechtigungen leeren; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> gewähre 'myuser'@'%' alle Privilegien für *.* mit der Grant-Option; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> Berechtigungen leeren; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) Wenn die Einstellung erfolgreich ist, kann das MyUser-Konto auch eine Remoteverbindung über Navicat herstellen. Dies ist das Ende dieses Artikels über die detaillierte Konfiguration des mysql8.x-Docker-Fernzugriffs. Weitere relevante Inhalte zum mysql8.x-Docker-Fernzugriff finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: HTML + CSS + JS-Beispielcode zur Nachahmung des Helligkeitsanpassungseffekts von Win10
Umgebungseinführung Betriebssystem: Centos 7.4 Za...
MyISAM-Speicher-Engine Die MyISAM-Speicher-Engine...
1. Einleitung Der Unterschied zwischen Zeilensper...
Inhaltsverzeichnis Vorwort 1. Bereitstellung und ...
Inhaltsverzeichnis 1. Einleitung 2. Der Unterschi...
Die React-Version beim Schreiben dieses Artikels ...
Frage: Nach dem Neustart des Computers kann der M...
Inhaltsverzeichnis 1. Titel 2. Code 3. Ergebnisse...
Zunächst müssen wir verstehen, dass ein TCP-Socke...
Inhaltsverzeichnis 1. Datenbanken verstehen 1.1 D...
In horizontaler Richtung können Sie die Ausrichtu...
Der Vorteil der Master-Slave-Synchronisierungskon...
Dieser Artikel beschreibt, wie Sie Apache auf ein...
Im Vergleich zu vue2 verfügt vue3 über ein zusätz...
Welche Informationen möchten Sie erhalten, wenn S...