Я использую сервер mysql внутри контейнера докеров и могу получить доступ к докере. Как создать соединение в mysql workbench, запущенном на моем локальном компьютере (Host Machine).Как подключить mysql workbench к запуску mysql внутри докера?
ответ
2 Докер связанные условия:
первый, ваш пробег докер необходимо сопоставить порт MySQL к хост-порт:
docker run -p host:container
(например: docker run -d -p 3306:3306 tutum/mysql
)
второй, если вы используете ng docker в виртуальной машине (докер-машина, с boot2docker), вам нужно использовать ip
docker-machine ip <VMname>
с отображенным портом узла.http://$(docker-machine ip <VMname>):hostPort
Если вам нужно использовать localhost
, вам нужно будет сделать some port forwarding at the VirtualBox level:
VBoxManage controlvm "boot2docker-vm" natpf1 "tcp-port3306,tcp,,3306,,3306"
VBoxManage controlvm "boot2docker-vm" natpf1 "udp-port3306,udp,,3306,,$3306"
(controlvm
если виртуальная машина работает, modifyvm
является VM остановлен) (заменить " boot2docker-vm
"на имя вашего vm: см. docker-machine ls
)
2 MySQL связанных условия:
Как показано в
nkratzke/EasyMySQL/Dockerfile
, Вам необходимо включить удаленный доступ:# Enable remote access (default is localhost only, we change this # otherwise our database would not be reachable from outside the container) RUN sed -i -e"s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
Вам нужно создать пользователь, когда startig вашей базы данных в Докер изображении.
Смотри, например,nkratzke/EasyMySQL/start-database.sh
, который называется поDockerfile CMD
:/usr/sbin/mysqld & sleep 5 echo "Creating user" echo "CREATE USER '$user' IDENTIFIED BY '$password'" | mysql --default-character-set=utf8 echo "REVOKE ALL PRIVILEGES ON *.* FROM '$user'@'%'; FLUSH PRIVILEGES" | mysql --default-character-set=utf8 echo "GRANT SELECT ON *.* TO '$user'@'%'; FLUSH PRIVILEGES" | mysql --default-character-set=utf8 echo "finished"
Я получил решение для этого, установив значение поля в Hostname: 127.0.0.1 (Localhost), порт по умолчанию 3306 с вашими кредитами.
В каком поле вы здесь? – VonC
@VonC Здесь я обращаюсь к полям workbench, например * hostname *, * port *, * username * и * password *, необходимым для подключения mysql сервер. –
Вы должны сделать несколько конфигураций в контейнере для докеров. Следуйте приведенным ниже инструкциям.
Укажите конфигурационный блок mysql в файле docker-compose.yml. У меня есть следующий mysql-блок под сервисами объект в моем файле docker-compose.yml.
services: db: image: mysql volumes: - "./.data/db:/var/lib/mysql" environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: mydb MYSQL_USER: user MYSQL_PASSWORD: pass ports: 42333:3306
Restart докер контейнер и запустить следующие команды, чтобы добраться до Баш оболочки в тузд контейнер
docker ps docker exec -it <mysql container name> /bin/bash
Внутри контейнера, для подключения к тузд типа командной строки,
mysql -u root -p
Используйте MYSQL_ROOT_PASSWORD, как указано в файле docker-compose.yml. Выполните следующие команды для создания нового пользователя.
create user 'user'@'%' identified by 'pass'; grant all privileges on *.* to 'user'@'%' with grant option; flush privileges;
Знак процента (%) означает все ip-адреса. Перезагрузите контейнер докера.
В вашей Workbench MySQL содержатся сведения о подключении. Используйте MYSQL_PASSWORD, как указано в файле docker-compose.yml.
Теперь вы должны иметь возможность подключения к тузд контейнера.
- 1. Как подключить MySQL Workbench к Amazon RDS?
- 2. Подключить Workbench MySQL к менеджеру шпаклера
- 3. Невозможно подключить Windows Azure к MySQL WorkBench
- 4. Как подключиться к MySQL Workbench?
- 5. Не удается подключить mysql workbench к удаленной базе данных
- 6. MYSQL - подключите MYSQL Workbench к серверу MYSQL на localhost
- 7. Как подключить Java к Mysql?
- 8. Как подключить MySQL к NetBeans на ubuntu?
- 9. Как подключить внешний сервер mysql в контейнере докера
- 10. Подключение к MySQL из Workbench
- 11. Ошибка подключения к Workbench MYSQL
- 12. Подключить Android к MySQL
- 13. Как подключить ruby к mysql?
- 14. Как подключить MATLAB к mysql?
- 15. Как подключить Rails к MySQL?
- 16. Как подключить MySQL к Java?
- 17. Как подключить MySQL к PHP?
- 18. Как подключить mysql к Basex?
- 19. Подключить C# к MySQL
- 20. MySQL Workbench
- 21. как подключить Coldfusion к базе данных MySQL
- 22. Подключение к AWS с MySQL Workbench
- 23. Windows mysql workbench не может подключиться к удаленному сервису mysql
- 24. MySQL workbench не подключается к базе данных
- 25. Как подключить Workbench MySQL с помощью MAMP PRO?
- 26. Как подключить базу данных mysql в openshift из workbench?
- 27. Как подключиться к MySql-серверу в Интернете из MySql Workbench?
- 28. MySQL ERROR 1064 - Workbench MySQL
- 29. Подключить запуск MySQL к определенному пользователю MySQL
- 30. разница между MySQL сервером и MySQL Workbench
Docker работает на моей локальной машине. и он имеет адрес 172.17.42.1 IP. Когда я запускаю $ select user(); Он дает + ---------------- + | user() | + ---------------- + | root @ localhost | + ---------------- + 1 ряд в комплекте (0.00 сек) и отображаемая переменная дает порт | 3306 –
@PawanSharma вы в Linux? Если да, какова была точная команда 'docker run', которую вы используете для запуска контейнера mysql? Какую версию докера вы используете? – VonC
Да, я на Ubuntu mchine nad docker версии Docker версии 1.8.2, build 0a8c2e3. Я могу получить доступ к mysql внутри контейнера докеров. –