Vagabond de la redirection de port pour le serveur Mysql
J'essaye de configurer la redirection de port dans le Vagrantfile pour se connecter à d'hôtes mysqld à partir du système hôte, mais obtenir reading initial communication packet
erreur.
Hôte: Yosemite, Invité: Fidèle, vagrant 1.7.4
Vagrantfile(hôte):
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 3306, host: 3309
mon.ini(invité):
bind-address = 127.0.0.1
8080 redirection fonctionne comme un charme.
mysql -h127.0.0.1 -uroot -p
de invité fonctionne également.
mysql -h127.0.0.1 -P 3309 -uroot -p
à partir de l'hôte résultats avec reading initial communication packet
erreur.
Quand je telnet à partir de l'hôte, la connexion se ferme instantanément:
$ telnet localhost 3309
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
La redirection de Port fonctionne quand je ssh pour vagrant box à partir de l'hôte:
$ssh vagrant@127.0.0.1 -p 2222 -L3308:localhost:3306
Alors je peux me connecter à partir de l'hôte mysql -h127.0.0.1 -P3308 -uroot -p
sans problèmes, que j'utilise comme une solution de contournement temporaire.
- avez-vous des règles de pare-feu qui bloquerait la circulation sur ces ports ?
- non, c'était mon premier suspect. Il n'existe pas de règle iptable. De toute façon, j'ai essayé de faire un tunnel ssh, et il fonctionne sans problèmes.
- vrai, mais avec le tunneling, de continuer à utiliser le port ssh.
- eh bien, même avec un tunnel ssh sur 2222, il doit utiliser 3306 sur le système invité à vous connecter à mysqld, et 3309 sur l'hôte client. De toute façon, je confirme il n'y a pas de règles iptable sur l'invité, et le pare-feu est désactivé sur l'ordinateur hôte.
Vous devez vous connecter pour publier un commentaire.
a finalement réussi à le faire fonctionner -
modifier le
/etc/mysql/my.cnf
fichier et assurez-vous, que ce soitbind-address = 0.0.0.0
#bind-address ...
Vous devrez peut-être l'ajouter à la section mysqld de la de mes.cnf fichier:
assurez-vous de redémarrer votre serveur mysql après le changement
Alors vous pouvez vous connecter à partir de votre hôte - tellement j'ai d'abord eu une erreur comme
je me suis donc retrouvé à l'invité et n'a
Ensuite, j'ai eu aucun problème pour se connecter depuis la machine hôte
bind-address = 10.0.2.15
dans mon.cnf.La première réponse est juste, mais pas assez.lorsque je me connecte à MySQL, j'obtiens une erreur:
Solution:
aha, tous les problèmes sont résolus,
Personnellement, je ne vous embêtez pas avec la modification de MySQL pour le développement de l'Errance des boîtes - c'est long et difficile de script dans un provisioner ce qui signifie que vous avez à faire à la main à chaque fois que vous
vagrany destroy
ou un nouveau développeur commence à cotiser. Au lieu de cela, je me connecte via le Tunnel SSH qui est en fait super simple à l'aide de Vagrant est généréprivate_key
fichier. Aucune autre post-installation de peaufiner nécessaire.Suivez ces étapes pour Tunnel SSH avec SequelPro, MySql Workbench, ou tout autre client qui prend en charge SSH connectivité:
127.0.0.1
(plus prévisible de la croix-os)root
et le mot de passe est défini dans le provisioner (voir extrait ci-dessous)Vagrant
private_key
pour le Vagabond de la machine au lieu de cela, située dans.vagrant/machines/default/virtualbox
à la racine de votre VM projet; à noter que sur la plupart des OS du ce répertoire, et tout en commençant par un.
sont cachésD'automatiser l'installation et la racine de création de mot de passe, ajoutez ceci à votre Vagrant provisioner fichier de script (
config.vm.provision
dans Vagrantfile), communément nomméprovisioner.sh
:Espère que cela aide à économiser de quelqu'un d'autre peu de temps!