Php docker中的Mysql连接拒绝
因此,我正在创建一个新的symfony4项目,但我无法让mysql连接到我的DockerMySQL。我做错了什么 我尝试更改mysql版本,将其组合并更新不同的mysql根目录和密码,但没有连接 这是我的用于mysql的docker-compose.ymlPhp docker中的Mysql连接拒绝,php,mysql,docker,docker-compose,symfony4,Php,Mysql,Docker,Docker Compose,Symfony4,因此,我正在创建一个新的symfony4项目,但我无法让mysql连接到我的DockerMySQL。我做错了什么 我尝试更改mysql版本,将其组合并更新不同的mysql根目录和密码,但没有连接 这是我的用于mysql的docker-compose.yml mysql: image: mysql:8 container_name: sf4_mysql volumes: - .docker/data/db:/var/lib/m
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
这里是mys.env中的mysql Url
数据库地址=mysql://sf4:sf4@sf4_mysql:3306/sf4
每次我这样做。/bin/控制台原则:数据库:创建,连接被拒绝
只是尝试创建一个数据库
控制器
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。 看 以及更多特定于
为了检查mysql是否正在运行,最好在终端及其客户端内部运行,这样可以最大限度地减少数据库本身的潜在错误源,而不包括php中的潜在错误。您知道我刷新连接时为什么会拒绝吗@Jimmix@Chris2kus你说的flush到底是什么意思?我正在尝试调用它(我更新了我的原始帖子以显示我的控制器。我收到一个错误,驱动程序中发生了一个异常:SQLSTATE[HY000][2002]连接被拒绝@Jimmixcheck如果你真的使用admin/root用户,或者你使用的其他用户被允许在MySQL上创建db。另一件事是使用MySQL客户端创建第二个容器,并尝试使用控制台创建任何db。如果在MySQL控制台运行良好,你知道问题出在php中。如果没有,MySQL就有问题。I在我运行/bin/console-doctor:database:create之后,它能够使用root用户创建数据库。但是,当我尝试写入时,它拒绝使用相同设置@Jimmix连接