gpt4 book ai didi

php - Mysql 连接在 docker 中被拒绝

转载 作者:行者123 更新时间:2023-11-29 07:21:06 24 4
gpt4 key购买 nike

所以我正在创建一个新的 symfony 4 项目,但是我无法让 mysql 连接到我的 docker mysql。我做错了什么?

我尝试更改 mysql 版本,将其组合并更新不同的 mysql root 和密码,但无法连接。

这是我的 mysql 的 docker-compose.yml。

mysql:
image: mysql:8
container_name: sf4_mysql
volumes:
- .docker/data/db:/var/lib/mysql
command:
- "--default-authentication-plugin=mysql_native_password"
- "--lower_case_table_names=1"
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: sf4
MYSQL_USER: sf4
MYSQL_PASSWORD: sf4

这是我的 .env 中的 mysql Url DATABASE_URL=mysql://sf4:sf4@sf4_mysql:3306/sf4

每次我做./bin/console doctrine:database:create,连接被拒绝。

只是想创建一个数据库。

Controller

class HospitalAdminController extends AbstractController
{
/**
* @Route("/admin/hospital/new")
*/
public function new(EntityManagerInterface $em)
{
$hospital = new Hospital();
$hospital->setName('Example Hospital')
->setPhone(8175831483)
->setAddress('123 Avenue');

$em->persist($hospital);
$em->flush();


return new Response(sprintf(
'Hiya! New Hospital id: #%d phone:%s address%s',
$hospital->getId(),
$hospital->getPhone(),
$hospital->getAddress()

));

}

最佳答案

你需要暴露mysql端口。默认为 3306。见port publishing

以及更多特定于 mysql-8 on docker 的示例

为了检查 mysql 是否正在运行,最好在其客户端终端内运行,这样可以最大限度地减少数据库本身的潜在错误源,不包括 php 中的潜在错误。

关于php - Mysql 连接在 docker 中被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56330023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com