所以我正在创建一个新的symfony 4项目,但是我无法让mysql连接到我的docker mysql。我做错了什么?
我曾尝试更改mysql版本,将其组成并更新其他mysql根目录和密码,但未连接。
这是我用于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原则:数据库:创建时,连接被拒绝。
仅尝试创建数据库。
控制器
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()
));
}
答案 0 :(得分:1)
您需要公开mysql端口。默认值为3306。 参见port publishing
以及更多特定于mysql-8 on docker
的示例对于检查mysql是否正在运行,最好在客户端的客户端内部运行,这样可以将数据库本身的潜在错误源减至最少,而不包括php中的潜在错误。