So stellen Sie eine Datenbankverbindung vom WordPress Docker her

Lesezeit: 3 Minuten

Benutzeravatar von Klaxx
Klaxx

Ich versuche, ein Docker Compose WordPress auszuführen, indem ich diese Anleitung verwende: https://docs.docker.com/compose/wordpress/

Dies ist die Yaml-Datei, wie in der Anleitung beschrieben:

version: '3.3'
services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
       WORDPRESS_DEBUG: "true"
volumes:
    db_data: {}

Nachdem ich meine ausgeführt habe

"docker-compose up -d" 

Befehl, ich gehe zu “http://localhost:8000/” in meinem Browser und erhalte die weiße Seite mit “Fehler beim Herstellen einer Datenbankverbindung”. Laut Anleitung sollte mir WordPress an dieser Stelle bereits die 5-Minuten-Installation anzeigen. Wenn ich den Container mit WordPress debug true starte, ist diese Fehlermeldung dann gezeigt:

Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /var/www/html/wp-includes/wp-db.php on line 1612

Verbindung abgelehnt

Ich benutze jetzt

docker exec it container_id /bin/bash 

und geben Sie “mysql -p” ein. Jetzt verwende ich das MYSQL_ROOT_PASSWORD aus der Docker-Compose-Datei, aber der Zugriff wird verweigert (“Access denied for user ‘root’@’localhost’ (using password: YES)”)

Ich bin mir nicht sicher, was ich früher gemacht habe, aber irgendwann hat es funktioniert und ich habe die Datenbanken und die mysql.users aufgelistet und die Datenbank und der Benutzer waren da.

Also ich weiß gar nicht, was hier das Problem ist…

Und warum kann ich nicht mehr als root zugreifen? Weiß jemand was zu tun ist?

BEARBEITEN: Port wieder auf 3306 geändert, ich habe 3308 versucht, nur um zu sehen, ob das ein Portproblem sein könnte

  • Ich denke, Sie sollten verwenden db:3306 nicht 3308.

    – tgogos

    29. März 2019 um 13:52 Uhr

  • Hey tgogos, das habe ich schon probiert. Hab gerade nachgeschaut, ob das kein Portproblem ist.

    – Klaxx

    29. März 2019 um 13:54 Uhr

  • “Zugriff verweigert für Benutzer ‘root’@’localhost’ (mit Passwort: YES)” würde bedeuten, dass Sie nicht über das Zugriffsrecht über den lokalen Unix-Socker verfügen … Haben Sie versucht “mysql -p -h 127.0.0.1 . ..” ?? Das würde zeigen, ob Sie über TCP/IP auf der lokalen Maschine zugreifen können

    – F. Madsen

    29. März 2019 um 18:31 Uhr

Ich habe einen anderen Beitrag gefunden und sie haben diese Yaml verwendet. Ich bin mir immer noch nicht sicher, warum das funktioniert, aber es funktioniert.

version: '3.3'
services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - 8000:80
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data: {}

Benutzeravatar von go je jo
geh je jo

Überprüfen Sie die Protokolle eines Dienstes. Gehen Sie wie folgt vor, um die Dienste zu überprüfen:

$ docker-compose logs
...
db_1 | 2022-10-21  2:08:08 0 [Note] InnoDB: Buffer pool(s) load completed at 221021  2:08:08
db_1 | 2022-10-21  2:08:08 0 [Note] mysqld: ready for connections.
db_1 | Version: '10.6.4-MariaDB-1:10.6.4+maria~focal'  socket: '/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution

Wenn Sie beispielsweise einen Mariadb-Dienst mit dem Namen db und es nicht auf diese Weise gedruckt wird, müssen Sie möglicherweise warten, bis es gedruckt wird.

1446950cookie-checkSo stellen Sie eine Datenbankverbindung vom WordPress Docker her

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy