php - Laravel Sai 无法从主机连接到数据库
问题描述
我安装了 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,我就会配置要连接的数据。
它告诉我数据库不存在。我不知道该怎么办。我会很感激你的帮助!
解决方案
由于我遇到了类似的问题,并且还将我的默认 laravel 航行端口更改为 3307。这个配置终于对我有用:
.env 文件(设置 your_project_name):
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
推荐阅读
- javascript - React Portal 解决了什么问题?
- php - 致命错误:在 C:\xampp\htdocs\pdf\fpdi2\src\Fpdi.php 中找不到类 'setasign\Fpdi\FpdfTpl'
- linux - 从远程复制指定目录时出现“是目录”错误
- ios - 使用 Travis 进行 Swift CI 测试 - 测试运行程序在开始测试执行之前退出
- angular - Angular 7中的猫头鹰旋转木马
- php - 使用 PHP FPDF 库创建的标签向下滑动页面
- php - 如何获取选择查询返回的结果的列名
- javascript - 带复选框 Angular 的 Fiter 表
- powershell - PowerShell & cURL - 获取 JSON 响应并检查 HTTP 响应代码
- python - Visual Studio 代码调试控制台错误:“...botocore.vendored.requests.exceptions.SSLError EOF 发生违反协议 (_ssl.c:777)”