Docker: Bei der Ausführung des Laravel-Artisan-Befehls ist ein Verbindungsfehler aufgetreten
P粉787820396
2023-08-07 16:24:22
<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>
把我的mysql容器的名字而不是127.0.0.1
首先,编辑您的docker-compose.yml文件
然后,在.env文件中设置正确的数据库端口
你的数据库端口是错误的。你正在尝试通过docker内运行的数据库实例连接暴露的端口。在这种情况下,你应该在.env文件中使用DB_PORT=3306