我无法理解如何让 Laradock 与 mysql 数据库一起正常工作。
我遵循 laradock 文档并安装了所有东西,使用启动容器
docker-compose up -d nginx mysql
我有这样的多个项目版本布局
project
+laradock-spa
php 方面似乎可以工作,我可以打开 laravel 欢迎页面,但是连接数据库会导致我出现问题。
首先,我应该在哪里运行 php artisan 命令,例如php artisan migrate
?应该从我的机器在项目文件夹中运行,还是从 docker 容器中运行?
当我从我的项目文件夹中运行它时,它可以工作,我可以进入 mysql 容器并查看初始数据库表,例如migration
和user
.
但是,我无法将初始 POST 发送到数据库以在 Postman 中工作 - 我收到错误SQLSTATE[HY000] [2002] No such file or directory (SQL: insert into users (...
所以我想也许我应该从工作区容器中运行迁移命令,所以我进入工作区,但是从这里php artisan migrate
命令错误[Illuminate\Database\QueryException]
SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schem
a.tables where table_schema = spa and table_name = migrations)
正如我所说,我可以成功进入 mysql 容器,并使用 root 密码登录数据库,运行第一次迁移后,我可以看到里面的表。
docker ps
显示所有容器。
有人可以解释它是如何工作的以及如何解决这个问题吗?我不确定我应该在哪里运行哪些命令,以及容器如何相互通信。但基本上,我怎样才能让 mysql 数据库在 laravel 项目中工作?
顺便说一句,我也在 PC 上运行本地 mysql,也许这会导致一些冲突/混乱?
我在 Win10 上运行所有这些。