【问题标题】:Laravel sail can't connect to database from hostLaravel Sai 无法从主机连接到数据库
【发布时间】:2021-06-05 18:12:45
【问题描述】:

我安装了 Ubuntu 20.04 lts。我已经用 Laravel 帆安装了一个 Laravel 项目。好的。安装 laravel 后,我使用“sail php artisan migrate”运行迁移。

该项目运行良好。我还安装了微风进行身份验证。我可以创建用户并登录。问题来自 Ubuntu,它似乎无法连接到该数据库。 在这里你可以看到我的 docker-compose.yml 文件的配置。我将mysql端口改为3307,因为它产生了冲突:

mysql:
    image: 'mysql:8.0'
    ports:
        - '${FORWARD_DB_PORT:-3307}:3306'
    environment:
        MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
        MYSQL_DATABASE: '${DB_DATABASE}'
        MYSQL_USER: '${DB_USERNAME}'
        MYSQL_PASSWORD: '${DB_PASSWORD}'
        MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
    volumes:
        - 'sailmysql:/var/lib/mysql'
    networks:
        - sail
    healthcheck:
      test: ["CMD", "mysqladmin", "ping"]

这是我的 .env 文件

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=example_app
DB_USERNAME=root
DB_PASSWORD=

在 Ubuntu 中,我安装了 mysql-server 和 tableplus。我打开控制台并以 root 身份打开 tableplus

jorge@jorge-VirtualBox:~$ sudo su
[sudo] contraseña para jorge: 
root@jorge-VirtualBox:/home/jorge# tableplus

一旦我以 root 身份打开 tableplus,我就会配置要连接的数据。

tableplus

它告诉我数据库不存在。我不知道该怎么办。 非常感谢您的帮助!

【问题讨论】:

  • 请不要使用图片作为问题中的代码。为无法用文字描述的事物留下图片和/或在您的问题中逐字复制粘贴的内容。相关:How to Ask

标签: php mysql laravel docker


【解决方案1】:

我已经配置了以下参数:

HOST: 127.0.0.1
USER: root
PSW:  your pwd here
DB:   db_name

【讨论】:

    【解决方案2】:

    由于我遇到了类似的问题,并且还将我的默认 laravel 航行端口更改为 3307。这个配置终于对我有用了:

    .env 文件(设置您的项目名称):

    DB_CONNECTION=mysql
    DB_HOST=mysql
    DB_PORT=3307
    DB_DATABASE=your_project_name
    DB_USERNAME=sail
    DB_PASSWORD=password
    

    docker-compose.yml(更改端口并添加 MYSQL_TCP_PORT 定义)

    mysql:
        image: 'mysql:8.0'
        ports:
            - '${FORWARD_DB_PORT:-3307}:3307'
        environment:
            MYSQL_TCP_PORT: '${DB_PORT}'
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
            MYSQL_DATABASE: '${DB_DATABASE}'
            MYSQL_USER: '${DB_USERNAME}'
            MYSQL_PASSWORD: '${DB_PASSWORD}'
            MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
        volumes:
            - 'sailmysql:/var/lib/mysql'
        networks:
            - sail
        healthcheck:
          test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
          retries: 3
          timeout: 5s
    

    【讨论】:

      【解决方案3】:

      解决了!我将解决方案留在这里,以防它可以帮助某人。 显然 TablePlus 在 Linux 上处于 beta 版本。我已经下载了适用于 Ubuntu 的 Workbench。在我按照附加的图像配置连接之后。在那里我已经能够看到 Laravel 数据库了。

      enter image description here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-02
        • 2018-09-16
        • 1970-01-01
        • 2013-12-18
        • 1970-01-01
        • 2021-10-20
        • 2019-02-25
        • 1970-01-01
        相关资源
        最近更新 更多