Задать вопрос
@Ille
Новичок

Как подключиться к моим БД?

Создал контейнер в докере: docker run --name igormysql -e MYSQL_ROOT_PASSWORD=gghhhh -p 3309:3306 -d mysql/mysql-server:latest

провалился в него:
docker exec -it igormysql mysql -U root -p gghhhh -- провалились внутрь контенера igormysql

mysql -h localhost -u root -p - зашел в базы данных.

Однако мне терминал выдает, что имеются следующие БД:
information_schema |
| mysql |
| performance_schema |
| sys

т.е. это к новому серверу я подключился, видимо.
У меня на компе стоит уже Mysql ,с кучей моих БД. Как мне к ним подключиться через докер???
  • Вопрос задан
  • 254 просмотра
Подписаться 1 Простой 3 комментария
Решения вопроса 1
thewind
@thewind
php программист, front / backend developer
Игорь, все парни выше в комментах абсолютны правы, что нужно изучить и понять контейнеризацию, а далее разделять окружения - либо внутри контейнера либо на хосте (в данном случае - на вашем компе).

Но при такой постановке вопроса и условии, что проект учебный, всё же есть вариант попробовать получить пятерку. :)

Итак, если у тебя есть комп с mysql сервером и уже готовым набором баз данных, но при этом со всем этим делом нужно работать именно изнутри докер контейнера, то вот как можно поступить:

1. Находим точную (!) версию mysql сервера на компе
2. Находим точный путь к директории, где mysql сервер на компе хранит данные всех баз
3. Создаем докер-контейнер с точно такой же версией mysql, как на компе (мы нашли ее в п.1.)
4. Находим точный путь к директории, где mysql сервер в контейнере хранит данные всех баз (т.к. ОС хоста и контейнера могут различаться, то пути вероятно тоже)
5. Создаем volume для докер-контейнера, где путь на хосте (т.е. на твоем компе) будет соответствовать пути, который мы нашли в п.2., а путь в контейнере будет соответствовать пути, который мы нашли в п.4.

Что получим: файлы всех баз будут общие у хоста и контейнера.
Узкие места: возможно mysql умнее, и добавляет разные блокировки на файлы с базами, и тогда будут коллизии или просто ошибки доступа. Тут не знаю заранее, надо пробовать.

PS этот способ - чисто помочь запустить проект. Но лучше, конечно, научиться дампить / ресторить БД через entrypoints и другие методы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Drno
сделать дамп БД дома, и сделать рестор БД на сервере...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы