Docker: Bei der Ausführung des Laravel-Artisan-Befehls ist ein Verbindungsfehler aufgetreten
P粉787820396
P粉787820396 2023-08-07 16:24:22
0
2
619
<p>Ich verwende Laravel 5.4 in Docker. Das ist meine Dock-Komposition. yml-Datei:</p> <pre class="brush:php;toolbar:false;">version: '2' Dienstleistungen: App: Containername: laravel_app Bild: webdevops/php-apache-dev:ubuntu-16.04 Links: - MySQL kommt drauf an: - MySQL Häfen: - 8888:80 Bände: - .:/app Umfeld: Docker: 'wahr' WEB_DOCUMENT_ROOT: '/app/public' WEB_NO_CACHE_PATTERN: '.(.*)$$' Arbeitsverzeichnis: '/app' MySQL: Bild: mariadb:latest Häfen: - 8889:80 Umfeld: MYSQL_ROOT_PASSWORD: 'dev' MYSQL_DATABASE: 'dev' MYSQL_USER: 'dev' MYSQL_PASSWORD: 'dev'</pre> <p>Dies ist der relevante Teil meiner <code>.env</code> <pre class="brush:php;toolbar:false;">DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=8889 DB_DATABASE=dev DB_USERNAME=dev DB_PASSWORD=dev</pre> <p>Ich kann die Begrüßungsseite von Laravel sehen – das funktioniert. Aber wenn ich php artisan migrate ausführe, erhalte ich diese Fehlermeldung: </p> <blockquote> <p>SQLSTATE[HY000] [2002] Verbindung abgelehnt (SQL: Wählen Sie * aus information_schema.tables aus, wobei table_schema = dev und table_name = migrations)</p> </blockquote> <p>Ich habe versucht, die Host- und Portparameter in der .env-Datei zu ändern. </p>
P粉787820396
P粉787820396

Antworte allen(2)
P粉295728625

把我的mysql容器的名字而不是127.0.0.1

NAME CONTAINERS

project-db --> container mysql
project-app --> container laravel

DB_CONNECTION=mysql
DB_HOST=project-db
DB_PORT=3306
DB_DATABASE=project
DB_USERNAME=root
DB_PASSWORD=root
P粉225961749

首先,编辑您的docker-compose.yml文件

mysql:
    image: mariadb:latest
    ports:
      - 8889:3306

然后,在.env文件中设置正确的数据库端口

你的数据库端口是错误的。你正在尝试通过docker内运行的数据库实例连接暴露的端口。在这种情况下,你应该在.env文件中使用DB_PORT=3306

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage