Comment faire pour se connecter à mysql workbench pour l'exécution de mysql à l'intérieur de docker?
Je suis de l'utilisation de mysql server dans le panneau de conteneurs et de pouvoir accéder à l'intérieur de docker. Comment créer une connexion à mysql workbench en cours d'exécution sur mon local(ordinateur Hôte).
OriginalL'auteur Pawan Kumar | 2015-11-20
Vous devez vous connecter pour publier un commentaire.
2 menu fixe les conditions liées à:
tout d'abord, votre docker run devez mapper le port mysql à un port hôte:
(par exemple:
docker run -d -p 3306:3306 tutum/mysql
)deuxième, si vous êtes à l'aide de docker dans une VM (menu fixe-machine, avec boot2docker), vous devez utiliser l'adresse ip de
docker-machine ip <VMname>
, avec l'hôte mappé port.Si vous avez besoin d'utiliser
localhost
, vous aurez besoin de faire certains de redirection de port au niveau de VirtualBox:(
controlvm
si la machine virtuelle est en cours d'exécution,modifyvm
est la machine virtuelle est arrêtée)(remplacer "
boot2docker-vm
" par le nom de votre machine virtuelle: voirdocker-machine ls
)2 mysql conditions:
Comme illustré dans la
nkratzke/EasyMySQL/Dockerfile
, vous devez activer l'accès à distance:Vous avez besoin pour créer des utilisateurs lors de la startig votre base de données dans votre panneau de l'image.
Voir, par exemple,
nkratzke/EasyMySQL/start-database.sh
, qui est appelée par leDockerfile CMD
:êtes-vous sur Linux? Si oui, quel a été le
docker run
exact de la commande que vous utilisez pour démarrer votre conteneurisé mysql? Quelle est la version de docker utilisez-vous?Oui je suis sur Ubuntu machine nad docker version est Docker version 1.8.2, construire 0a8c2e3. Je suis en mesure d'accéder à mysql à l'intérieur de conteneur docker.
OK. quel a été le docker run exact de la commande que vous utilisez pour démarrer votre conteneurisé mysql?
Nous sommes en utilisant le panneau contenant plusieurs outils nous avons donc créé un récipient avec de l'multiconfig fichiers ici, nous utilisons la commande docker run-v "$XYZPATH":/apps/src/externe:ro -t -i $EXPOSE_PORTS $DOCKER_REGISTRY/xxxxx:le dernier "$@
OriginalL'auteur VonC
Vous avez à faire un peu de configuration en vous conteneur docker. Veuillez suivre les étapes suivantes.
Spécifier la configuration de mysql bloc dans votre menu fixe-composer.yml. J'ai suivantes mysql bloc sous services objet dans mon menu fixe-composer.fichier yml.
Redémarrer conteneur docker et exécuter les commandes suivantes pour obtenir le shell bash dans la base de données mysql contenant
À l'intérieur du conteneur, pour se connecter à mysql en ligne de commande type,
Utilisation MYSQL_ROOT_PASSWORD comme spécifié dans le menu fixe-composer.yml . Exécuter les commandes suivantes pour créer un nouvel utilisateur.
Le signe de pourcentage (%) signifie que toutes les adresses ip. Redémarrez le conteneur docker.
Dans votre MySQL Workbench fournir les détails de la connexion. Utilisation MYSQL_PASSWORD comme spécifié dans votre menu fixe-composer.fichier yml.
Vous devriez maintenant être en mesure de se connecter à votre serveur mysql contenant.
Merci beaucoup! Il m'a sauvé de la recherche!
cela a fonctionné. merci!
OriginalL'auteur Krishna
Par défaut après le déploiement de MySQL a la suite des restrictions de connexion:
Apparemment, pour des raisons de sécurité, vous ne serez pas en mesure de se connecter à l'extérieur du support de l'image.
Si vous avez besoin de changer que pour permettre aux racines de se connecter à partir de n'importe quel hôte (par exemple, à des fins de développement), faites:
Commencer votre mysql image avec tous les mappages de ports requis:
docker run -p 3306:3306 --name=mysql57 -d mysql/mysql-server:5.7
ou, si l'ensemble du mappage de port est nécessaire:
Si c'est le frais d'installation - saisir le mot de passe par défaut:
docker logs mysql57 2>&1 | grep GENERATED
Connecter à l'aide de
mysql
client directement à l'mysqld dans le panneau:docker exec -it mysql57 mysql -uroot -p
Si c'est le frais d'installation vous sera demandé de changer le mot de passe à l'aide de
ALTER USER
de commande. Le faire.Exécuter SQL:
update mysql.user set host = '%' where user='root';
Quitter le
mysql
client.Redémarrer le conteneur:
docker restart mysql57
De maintenant, vous serez en mesure de vous connecter à partir de MySQL Workbench pour
Après tous les changements que la requête indique:
Très bien expliqué. J'apprécie vraiment ces sortes de réponses. Dieu vous bénisse ami.
OriginalL'auteur Andrey Lebedenko
@Krishna réponse travaillé, mais avec une modification mineure de l'utilisateur a été ajouté comme suit
voir Le plugin d'authentification 'caching_sha2_password' ne peut pas être chargé
OriginalL'auteur andrew
Supposons que vous avez le prochain le contenu de votre
docker-compose
fichier:database:
image: mysql:5.6
volumes:
- dbdata:/var/lib/mysql
environment:
- "MYSQL_DATABASE=homestead"
- "MYSQL_USER=homestead"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
ports:
- "33061:3306"
Pour localhost suffit d'utiliser host 127.0.0.1 et le port 33061
OriginalL'auteur Deadpool
J'ai la solution pour ce par la mise en valeur d'un champ dans nom d'hôte: 127.0.0.1 (Localhost), le port par défaut 3306 avec votre creds.
Ici, je parle workbench champs comme nom d'hôte, port, nom d'utilisateur et mot de passe requis pour la connexion à un serveur mysql.
OriginalL'auteur Pawan Kumar
Préciser votre configuration
docker-compose.yml
. Plus de détails ici. Exemple:docker-compose up
et un autre terminal exécuterdocker ps
pour voir votre conteneur.docker exec -it test-mysql bash
mysql -u root -p
.OriginalL'auteur DNick