РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcPhMyDu 26 of 30 menu
◀ ▶

База и пользователь в Docker

База и пользователь приложения создаются на пустом томе и не совпадают с root. Образ читает переменные MYSQL_DATABASE, MYSQL_USER и MYSQL_PASSWORD при первой инициализации хранилища и заводит отдельную учётку для программы. Пароль root задают отдельно.

Для чистого эксперимента объявим свой том appdata, чтобы старые файлы не мешали новым именам. Сервис db на mysql:9.7:

services: db: image: mysql:9.7 environment: MYSQL_ROOT_PASSWORD: demo MYSQL_DATABASE: app MYSQL_USER: app MYSQL_PASSWORD: demo volumes: - appdata:/var/lib/mysql volumes: appdata:

Фоновый подъём на пустом appdata создаёт базу app и пользователя app с паролем demo:

docker compose up -d

Проверка входа под пользователем приложения, не под root:

docker compose exec db mysql -uapp -pdemo app -e "SELECT USER(), DATABASE();"

Клиент подключается без ошибки доступа, в ответе видны имя app и текущая база app. Если том уже содержал старые файлы, новые переменные учётку не перезапишут - нужен свежий том.

Задайте на пустом томе shopdata базу shop и пользователя shop с учебным паролем рядом с паролем root demo.

Убедитесь внутри сервиса, что вход под shop открывает базу shop без сообщения об отказе.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить