You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Sail容器部署应用无法连接MySQL问题及解决

Laravel Docker容器部署数据库连接拒绝问题解决

在Windows 11系统中通过Docker容器部署Laravel应用,访问localhost/posts时出现数据库连接拒绝错误:

SQLSTATE[HY000] [2002] Connection refused
SELECT * FROM posts

数据库中已存在posts表,且可在WSL终端正常执行php artisan migrate命令。相关配置如下:

  • /posts对应的Blade模板:
@extends('app')
@section('content')
    <h1>Posts index page</h1>
    @forelse ($posts as $post)
        <h2>{{ $post->title }}</h2>
    @empty
        <h2>No posts!</h2>
    @endforelse
@endsection
  • web.php路由配置:
Route::resource('/posts', PostController::class)->only(['index', 'store']);
  • PostController的index方法:
public function index()
{
    $posts = Post::all();
    return view('posts.index', compact('posts'));
}
  • 原.env数据库配置:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3307
DB_DATABASE=laravel_essentials_app
DB_USERNAME=sail
DB_PASSWORD=password
  • docker-compose.yml中MySQL服务:将容器3306端口映射到主机3307端口(本地运行MySQL Workbench占用默认端口)

解决方案:修改.env文件中的数据库配置,将DB_HOST改为mysql(对应Docker-compose中MySQL服务的服务名),DB_PORT改为容器内部的3306端口:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel_essentials_app
DB_USERNAME=sail
DB_PASSWORD=password

内容的提问来源于stack exchange,提问作者Christophoros Anthoulakis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 21:25:32