В контейнере БД вы устанавливаете пароль только для пользователя root
, но используете test
пользователя.Так что вам либо нужно установить MYSQL_PASSWORD
env var.Или используйте root
пользователя.
Подробнее о переменных env в mysql docker hub docs
Моя рекомендация - изменить определение службы БД на
services:
db:
image: mysql
enviroment:
MYSQL_RANDOM_ROOT_PASSWORD: 1
MYSQL_DATABASE: test
MYSQL_USER: test
MYSQL_PASSWORD: test
Это не поощряетиспользуйте пользователя root, что считается наилучшей практикой.
Вероятно, причина этих ошибок заключается в том, что у вас неверная версия mysql.В mysql docker hub вы можете видеть, что тег latest
(с неявным тегом, если вы его не предоставляете), такой же, как 8.0
.Но многие приложения совместимы только с более старыми 5.7
.Чтобы изменить это, в вашем docker-compose добавьте тег 5.7
:
services:
db:
image: mysql:5.7
(5,7 и 8,0 на самом деле только один основной выпуск, а 8,0 был выпущен в 2017 году)