Docker:在执行Laravel artisan命令时遇到连接拒绝错误
P粉787820396
2023-08-07 16:24:22
<p>我在Docker中运行Laravel 5.4。这是我的码头作曲。yml文件:</p>
<pre class="brush:php;toolbar:false;">version: '2'
services:
app:
container_name: laravel_app
image: webdevops/php-apache-dev:ubuntu-16.04
links:
- mysql
depends_on:
- mysql
ports:
- 8888:80
volumes:
- .:/app
environment:
docker: 'true'
WEB_DOCUMENT_ROOT: '/app/public'
WEB_NO_CACHE_PATTERN: '.(.*)$$'
working_dir: '/app'
mysql:
image: mariadb:latest
ports:
- 8889:80
environment:
MYSQL_ROOT_PASSWORD: 'dev'
MYSQL_DATABASE: 'dev'
MYSQL_USER: 'dev'
MYSQL_PASSWORD: 'dev'</pre>
<p>This is the relevant part of my <code>.env</code> file:</p>
<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>我可以看到Laravel的欢迎页面——这方面的工作。但是当我运行php artisan migrate时,我得到了这个错误:</p>
<blockquote>
<p>SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = dev and table_name = migrations)</p>
</blockquote>
<p>我试过修改.env文件中的主机和端口参数。</p>
把我的mysql容器的名字而不是127.0.0.1
首先,编辑您的docker-compose.yml文件
然后,在.env文件中设置正确的数据库端口
你的数据库端口是错误的。你正在尝试通过docker内运行的数据库实例连接暴露的端口。在这种情况下,你应该在.env文件中使用DB_PORT=3306