Laravel、Jetstream 和 Inertia 的数据库连接问题
DB connection issue with Laravel, Jetstream and Inertia
我已经使用 Laravel 和 Sail (Docker) 以及 Jetstream 和 Inertia.js 建立了一个新项目,我已经完成了设置,但是在访问时出现了这个错误本地站点:
Illuminate \ Database\ QueryException
PHP 8.1.3
9.3.1
SQLSTATE[HY000] [2002] Connection refused
select * from `sessions` where `id` = KdN2zl3PoYshRyfBJOCQi4nNLPnezUJZJi6MgXGR limit 1
这可以通过将 DB_HOST
从 127.0.0.1
更改为 mysql
来解决,然后我可以在本地访问该站点,但是当我执行类似 php artisan migrate
的操作时我收到错误:
Illuminate\Database\QueryException
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (SQL: select * from information_schema.tables where table_schema = db and table_name = migrations and table_type = 'BASE TABLE')
DB_HOST
设置为 127.0.0.1
的地方,php artisan migrate
工作正常,所以通过修复一个它会破坏另一个,请帮助
如果您使用 Laravel Sail,则必须使用 sail artisan migrate
而不是 php artisan migrate
。
在这种情况下,您使用的是 Docker 容器 (Sail),如果您想使用关联的数据库(docker compose ps
查看所有服务),您必须执行 docker compose exec SERVICE_NAME bash
这样您就可以连接到该服务,然后 运行 您想要的任何普通命令。
因为你使用的是Sail,你必须运行 sail artisan migrate
:
sail artisan
是 运行 任何 php artisan
命令。
migrate
当然会在相关数据库上 运行 php artisan migrate
...
因此,您必须使用 mysql
或您在 Sail 上的姓名...
请阅读 documentation,因为您的问题已在其中 100% 得到解释...不要试图成为魔术师,请阅读文档...
我已经使用 Laravel 和 Sail (Docker) 以及 Jetstream 和 Inertia.js 建立了一个新项目,我已经完成了设置,但是在访问时出现了这个错误本地站点:
Illuminate \ Database\ QueryException
PHP 8.1.3
9.3.1
SQLSTATE[HY000] [2002] Connection refused
select * from `sessions` where `id` = KdN2zl3PoYshRyfBJOCQi4nNLPnezUJZJi6MgXGR limit 1
这可以通过将 DB_HOST
从 127.0.0.1
更改为 mysql
来解决,然后我可以在本地访问该站点,但是当我执行类似 php artisan migrate
的操作时我收到错误:
Illuminate\Database\QueryException
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (SQL: select * from information_schema.tables where table_schema = db and table_name = migrations and table_type = 'BASE TABLE')
DB_HOST
设置为 127.0.0.1
的地方,php artisan migrate
工作正常,所以通过修复一个它会破坏另一个,请帮助
如果您使用 Laravel Sail,则必须使用 sail artisan migrate
而不是 php artisan migrate
。
在这种情况下,您使用的是 Docker 容器 (Sail),如果您想使用关联的数据库(docker compose ps
查看所有服务),您必须执行 docker compose exec SERVICE_NAME bash
这样您就可以连接到该服务,然后 运行 您想要的任何普通命令。
因为你使用的是Sail,你必须运行 sail artisan migrate
:
sail artisan
是 运行 任何php artisan
命令。migrate
当然会在相关数据库上 运行php artisan migrate
...
因此,您必须使用 mysql
或您在 Sail 上的姓名...
请阅读 documentation,因为您的问题已在其中 100% 得到解释...不要试图成为魔术师,请阅读文档...