web-dev-qa-db-fra.com

Comment se connecter au serveur Mysql dans VirtualBox Vagrant?

J'ai monté une nouvelle machine VirtualBox avec Vagrant, et à l'intérieur de celle-ci VM j'ai installé le serveur Mysql. Comment puis-je me connecter à ce serveur en dehors de la machine virtuelle? J'ai déjà transféré le port 3306 du fichier Vagrantfile, mais quand J'essaie de me connecter au serveur mysql, il repost avec le message suivant: 'lecture du paquet de communication initial'

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
93
rizidoro

Assurez-vous que MySQL se lie à 0.0.0.0 et non à 127.0.0.1 sinon il ne sera pas accessible de l'extérieur de la machine

Vous pouvez vous en assurer en modifiant votre fichier my.conf et en recherchant le fichier bind-address item - vous voulez que ça ressemble à bind-address = 0.0.0.0. Puis enregistrez ceci et redémarrez mysql:

Sudo service mysql restart

Si vous effectuez cette opération sur un serveur de production, vous souhaitez connaître les implications en termes de sécurité, décrites ici: https://serverfault.com/questions/257513/how-bad-is-setting-mysqls-bind -adresse-à-0-0-0-

125
Dror Bereznitsky

Connectez-vous à votre boîte avec ssh [email protected] -p 2222 (mot de passe vagabond)

Ensuite: Sudo nano /etc/mysql/my.cnf et commentez les lignes suivantes avec #

#skip-external-locking 
#bind-address

enregistrer et quitter

puis: Sudo service mysql restart

Ensuite, vous pouvez vous connecter via SSH à votre serveur MySQL.

48

Je suis tombé sur ce problème récemment. J'ai utilisé PuPHPet pour générer une configuration.

Pour me connecter à MySQL via SSH, le mot de passe "vagrant" ne fonctionnait pas pour moi, mais je devais m'authentifier via le fichier de clé SSH.

Pour vous connecter à MySQL Workbench

Méthode de connexion

TCP/IP standard sur SSH

SSH

Hostname: 127.0.0.1:2222 (forwarded SSH port)
Username: vagrant
Password: (do not use)
SSH Key File: C:\vagrantpath\puphpet\files\dot\ssh\insecure_private_key
              (Locate your insercure_private_key)

MySQL

Server Port: 3306
username: (root, or username)
password: (password)

Testez la connexion.

18
radiohub

Pour ceux qui essaient de le faire en utilisant mysql workbench ou suite pro, voici les entrées:

Mysql Host: 192.168.56.101 (or ip that you choose for it)
username: root (or mysql username u created)
password: **** (your mysql password)
database: optional
port: optional (unless you chose another port, defaults to 3306)

ssh Host: 192.168.56.101 (or ip that you choose for this vm, like above)
ssh user: vagrant (vagrants default username)
ssh password: vagrant (vagrants default password)
ssh port: optional (unless you chose another)

source: https://coderwall.com/p/yzwqvg

17
Sarmen B.

Eh bien, comme aucune des réponses fournies ne m'a aidé, j'ai dû chercher plus, et trouvé la solution dans this article.

Et la réponse en bref est la suivante:

Connexion à MySQL avec MySQL Workbench

Connection Method: Standard TCP/IP over SSH
SSH Hostname: <Local VM IP Address (set in PuPHPet)>
SSH Username: vagrant (the default username)
SSH Password: vagrant (the default password)
MySQL Hostname: 127.0.0.1
MySQL Server Port: 3306
Username: root
Password: <MySQL Root Password (set in PuPHPet)>

En utilisant cette approche, je pouvais me connecter à la base de données mysql en vagabond à partir de la machine Host Ubuntu en utilisant MySQL Workbench et également en utilisant Valentina Studio.

13
WallTearer

Voici les étapes qui ont fonctionné pour moi après la connexion à la boîte:

Localisez le fichier de configuration MySQL:

$ mysql --help | grep -A 1 "Default options"

Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

Sur Ubuntu 16, le chemin est typiquement /etc/mysql/mysql.conf.d/mysqld.cnf

Changer le fichier de configuration pour bind-address:

S'il existe, modifiez la valeur comme suit. S'il n'existe pas, ajoutez-le n'importe où dans la section [mysqld].

bind-address = 0.0.0.0

Enregistrez vos modifications dans le fichier de configuration et redémarrez le service MySQL.

service mysql restart

Créer/Accorder l'accès à l'utilisateur de la base de données:

Connectez-vous à la base de données MySQL en tant qu'utilisateur root et exécutez les commandes SQL suivantes:

mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password';

mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'%';
2
Rajkaran Mishra

Cela a fonctionné pour moi: Connect to MySQL in Vagrant

username: vagrant password: vagrant

Sudo apt-get update Sudo apt-get install build-essential zlib1g-dev
git-core sqlite3 libsqlite3-dev Sudo aptitude install mysql-server
mysql-client


Sudo nano /etc/mysql/my.cnf change: bind-address            = 0.0.0.0


mysql -u root -p

use mysql GRANT ALL ON *.* to root@'33.33.33.1' IDENTIFIED BY
'jarvis'; FLUSH PRIVILEGES; exit


Sudo /etc/init.d/mysql restart




# -*- mode: Ruby -*-
# vi: set ft=Ruby :

Vagrant::Config.run do |config|

  config.vm.box = "lucid32"

  config.vm.box_url = "http://files.vagrantup.com/lucid32.box"

  #config.vm.boot_mode = :gui

  # Assign this VM to a Host-only network IP, allowing you to access
it   # via the IP. Host-only networks can talk to the Host machine as
well as   # any other machines on the same network, but cannot be
accessed (through this   # network interface) by any external
networks.   # config.vm.network :hostonly, "192.168.33.10"

  # Assign this VM to a bridged network, allowing you to connect
directly to a   # network using the Host's network device. This makes
the VM appear as another   # physical device on your network.   #
config.vm.network :bridged

  # Forward a port from the guest to the Host, which allows for
outside   # computers to access the VM, whereas Host only networking
does not.   # config.vm.forward_port 80, 8080

  config.vm.forward_port 3306, 3306

  config.vm.network :hostonly, "33.33.33.10"


end
1
DannyFeliz