我已经安装了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。我打开控制台并打开tableplus作为根
jorge@jorge-VirtualBox:~$ sudo su
[sudo] contraseña para jorge:
root@jorge-VirtualBox:/home/jorge# tableplus
一旦我以root身份打开tableplus,我配置数据连接。
tableplus
它告诉我数据库不存在。我不知道该怎么办。谢谢你的帮助!
因为我有一个类似的问题,并且也将我的默认laravel sail端口更改为3307。这个配置终于为我工作了:
。环境文件(设置你的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。(修改了端口,增加了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
解决!我把答案留在这里,也许能帮到谁。显然TablePlus在Linux上还处于测试版。我已经为Ubuntu下载了Workbench。在我配置了连接之后,就像我所附加的图像一样。在那里我已经能够看到Laravel数据库。
输入图片描述
我配置了以下参数:
HOST: 127.0.0.1
USER: root
PSW: your pwd here
DB: db_name