Итак, я создаю новый проект Symfony 4, но не могу заставить mysql подключиться к моему докеру mysql. какую часть я делаю неправильно?
Я пытался изменить версии mysql, составить их и обновить другой корень и пароль mysql, но не подключается.
вот мой docker-compose.yml для mysql.
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
Вот URL-адрес mysql в моем .env DATABASE_URL=mysql://sf4:sf4@sf4_mysql:3306/sf4
каждый раз, когда я делаю ./bin/console doctrine:database:create, в соединении отказывается.
просто пытаюсь создать базу данных.
контроллер
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-8 на докере
Для проверки того, работает ли mysql, хорошо запустить внутри терминала его клиента, чтобы вы минимизировали потенциальный источник ошибок в самой базе данных, не включая потенциальные ошибки в php.
@Chris2kus, что именно вы подразумеваете под флешем?
Я пытаюсь вызвать это (я обновил свой исходный пост, чтобы показать свой контроллер. Я получаю сообщение об ошибке. В драйвере произошло исключение: SQLSTATE [HY000] [2002] В соединении отказано @Jimmix
проверьте, действительно ли вы используете пользователя admin/root или другому пользователю, которого вы используете, разрешено создавать базу данных в MySQL. Другое дело — создать второй контейнер с клиентом mysql и попытаться создать любую базу данных с помощью консоли. Если все идет хорошо в консоли mysql, вы знаете, что проблема в php. если нет, то что-то не так с mysql.
Я смог создать базу данных с пользователем root, после того как я запустил ./bin/console doctrine:database:create, он создал базу данных. однако, когда я пытаюсь написать, он отказывается от соединения с теми же настройками @Jimmix
@Chris2kus не повезло, я не могу тебе помочь. Опубликуйте его как новый вопрос, в точности с используемой конфигурацией и полученным сообщением об ошибке.
вы знаете, почему, когда я флеш соединение отказывается? @Джиммикс