web-dev-qa-db-fra.com

Se connecter à MySQL sur une instance Vagrant avec Sequel Pro

J'utilise Laravel sur Vagrant et j'essaie de connecter Sequel Pro.

Je viens tout juste de commencer à utiliser Vagrant. J'ai suivi quelques tutoriels sur la connexion à Sequel Pro, mais ils ont tous échoué.

Voici mon fichier Vagrant:

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

Vagrant.configure('2') do |config|
config.vm.hostname = 'laravel'
config.vm.boot_timeout = 3600
config.vm.box = 'debian-73-i386-virtualbox-puppet'
config.vm.box_url = 'http://puppet-vagrant-boxes.puppetlabs.com/debian-73-i386-virtualbox-puppet.box'

config.vm.network :forwarded_port, guest: 8000, Host: 8000
config.vm.network :forwarded_port, guest: 8500, Host: 8500

config.vm.provider :virtualbox do |vb|
vb.customize ['modifyvm', :id, '--memory', '1536']
end

config.vm.provision :puppet do |puppet|
puppet.manifests_path = 'puppet/'
puppet.manifest_file  = 'init.pp'
puppet.module_path    = 'puppet/modules/'
# puppet.options      = '--verbose --debug'
end

end

De my.cnf:

bind-address            = 127.0.0.1 

Voici mon /etc/hosts

127.0.0.1       localhost
127.0.1.1       laravel
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

EDIT: A changé l’adresse de reliure en 0.0.0.0 mais ne fonctionne toujours pas Dans Sequel Pro, j’ai

MySQL Host: 0.0.0.0
username: root
Password: (mysql password)
SSH Host 0.0.0.0
SSH User: vagrant
SSH Password: vagrant

EDIT: Voici mon fichier hôtes vagrant - etc/hosts

Ceci est mon fichier hosts 

127.0.0.1       localhost
127.0.1.1       laravel
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10
user3692109

Le problème est que MySQL tel que vous l'avez configuré dans my.cnf ne peut maintenant se connecter que via localhost au sein du serveur Vagrant:

bind-address            = 127.0.0.1 

Pour activer la mise en réseau dans MySQL, vous devez modifier ce paramètre dans my.cnf en:

bind-address            = 0.0.0.0

Et puis redémarrez le service MySQL. Vous ne savez pas comment cela se passera dans Vagrant, mais dans Ubuntu, vous devrez entrer une commande comme celle-ci:

Sudo service mysql restart

Vous devrez peut-être vérifier vos autorisations utilisateur MySQL pour vous assurer que l'utilisateur dans MySQL peut réellement être utilisé à partir de n'importe quelle adresse IP (parfois, ils sont strictement définis sur localhost ou 127.0.0.1).

Comme expliqué dans la documentation officielle de MySQL :

Le serveur traite différents types d’adresses comme suit:

  • Si l'adresse est 0.0.0.0, le serveur accepte les connexions TCP/IP sur toutes les interfaces IPv4 de l'hôte du serveur.

  • Si l'adresse est ::, le serveur accepte les connexions TCP/IP sur toutes les interfaces hôte IPv4 et IPv6 du serveur. Utilisez cette adresse pour autoriser les connexions IPv4 et IPv6 sur toutes les interfaces de serveur.

  • Si l'adresse est une adresse mappée IPv4, le serveur accepte les connexions TCP/IP pour cette adresse, au format IPv4 ou IPv6. Par exemple, si le serveur est lié à :: ffff: 127.0.0.1, les clients peuvent Se connecter à l'aide de --Host = 127.0.0.1 ou --Host = :: ffff: 127.0.0.1 .

  • Si l'adresse est une adresse «normale» IPv4 ou IPv6 (telle que 127.0.0.1 ou :: 1), le serveur accepte les connexions TCP/IP uniquement pour cette adresse IPv4 ou IPv6.

Cela dit, il n'est pas recommandé d'exposer MySQL (ou tout autre serveur de base de données) au monde. Mais est acceptable dans un cas de développement local comme celui-ci.

Par conséquent, si l'activation de la mise en réseau MySQL n'est pas une option, vous pouvez également utiliser les fonctionnalités de tunneling SSH intégrées à Sequel Pro pour vous connecter à MySQL via SSH. Des détails sur tous les différents types de connexion sont présentés sur le site officiel de Sequel Pro ici . Mais cette capture d'écran résume bien.

En gros, vous définissez vos informations localhost/127.0.0.1 MySQL comme vous le feriez normalement. Mais vous ajoutez également les informations SSH que vous utiliseriez pour SSH sur votre serveur. Et Sequel Pro utilisera cette connexion SSH pour créer un tunnel et se connecter à MySQL de manière transparente. C’est peut-être le meilleur moyen de gérer les problèmes de réseautage et d’autorisation utilisateur avec MySQL.

enter image description here

Pour le tunneling SSH dans Sequel Pro, il vous suffit de procéder comme suit:

  • Nom: Le nom que vous voulez pour la connexion.
  • Hôte MySQL: L'adresse IP de l'hôte MySQL qui devrait être localhost ou 127.0.0.1
  • Nom d'utilisateur: Nom d'utilisateur de la base de données MySQL.
  • Mot de passe: Le mot de passe connecté à ce nom d'utilisateur de la base de données MySQL.
  • Base de données: Facultatif (base de données à laquelle vous souhaitez vous connecter)
  • Port: La valeur par défaut est 3306, donc ne changez cela que si vous devez absolument utiliser autre chose.

Maintenant, vous définissez les paramètres SSH pour votre installation Vagrant:

  • Hôte SSH: Le nom d'hôte ou l'adresse IP de votre ordinateur Vagrant.
  • Utilisateur SSH: Nom d'utilisateur SSH associé à cette machine Vagrant.
  • Mot de passe SSH: Le mot de passe connecté à cet utilisateur SSH.
  • SSH Port: La valeur par défaut est 22, vous ne devez donc changer cela que si vous devez absolument utiliser autre chose.
21
JakeGould

c'est ma configration:

 enter image description here

Machine par défaut Vagrant utilisateur ssh et mot de passe ssh tous sont vagrant .

6
pangpang

Tout ce que vous avez à faire est d’éditer l’adresse de lien située ici:

$ Sudo nano /etc/mysql/my.cnf

Recherchez le paramètre bind_address qui sera défini sur 127.0.0.0 et remplacez-le par 0.0.0.0

Après cela, redémarrez MySQL:

$ Sudo service mysql restart

La dernière étape consiste simplement à mettre à jour les autorisations:

$ mysql -u root -proot -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; FLUSH PRIVILEGES;"

Puis connectez-vous comme vous le feriez normalement (en changeant de port comme vous le définissez dans votre fichier vagrant).

sequel pro settings

Notez qu'il y a des problèmes de sécurité ici car tout est assez ouvert, mais pour dev, ça va.

5
Mediabeastnz

Toutes les réponses ci-dessus n'ont pas fonctionné pour moi jusqu'à ce que j'aie essayé ceci:

  • Connectez-vous à votre instance vagrant à l'aide de vagrant ssh
  • Lorsque vous tapez juste passwd pour définir un nouveau mot de passe. Utilisez le mot de passe vagrant pour la cohérence.

Il se connectera facilement après cette étape.

Merci à @hugo à Comment puis-je utiliser Suite avec PuPHPet?

2
Keeprock

Essayez https://github.com/AlexDisler/mysql-vagrant , il vous permet de vous connecter sans tunnel ssh (consultez install.sh pour les paramètres spécifiques).

2
Alex

Pour moi, l’essentiel était d’utiliser 0.0.0.0 comme hôte MySQL au lieu de 127.0.0.1. Tout le reste est comme d'habitude (en utilisant SSH). Cela fonctionne pour moi:

 enter image description here

0
Lukas

Voici ma capture d'écran pour vagrant connected utilisant mysql workbench sous MAC  enter image description here

0
AbdulBasit

Votre connexion à votre boîte Vagrant doit être établie via SSH. Ainsi, si vous vous êtes déjà connecté auparavant et avez apporté des modifications majeures à votre zone Vagrant (comme une destruction/reconstruction), vous pouvez disposer d'une nouvelle clé privée et vous devez actualiser votre enregistrement d'adresse IP dans ~/.ssh/known_hosts. Pour ce faire, ouvrez le fichier dans vim et supprimez simplement la ligne qui commence par votre adresse IP de boîte vagabonde.

0
ctlockey

La réponse à propos de l'adresse de rattachement est correcte, mais j'ai constaté qu'au lieu de modifier la valeur en 0.0.0.0, il est préférable de simplement modifier le fichier my.cnf et de commenter l'adresse de rattachement. 

Si vous faites cela et que vous suivez ensuite le reste de la réponse originale, vous devriez pouvoir vous connecter via sequel pro

0
jose mera