Подключитесь к MySQL на экземпляре Vagrant с помощью Sequel Pro

Я запускаю Laravel на Vagrant, и я пытаюсь подключить Sequel Pro.

Я только начал использовать Vagrant, я следил за несколькими учебниками по подключению к Sequel Pro, но все они были безуспешными.

Вот мой бродячий файл:

# -*- 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

От my.cnf:

bind-address            = 127.0.0.1 

Вот мой /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: измененный адрес привязки к 0.0.0.0 все еще не работает В Sequel Pro у меня есть

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

EDIT: Вот мой файл бродячих хозяев - 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

Ответ 1

Проблема в том, что MySQL, поскольку у вас есть настройка в my.cnf, теперь можно подключиться только через localhost к серверу Vagrant:

bind-address            = 127.0.0.1 

Чтобы включить создание сетей в MySQL, вы должны изменить этот параметр в my.cnf на:

bind-address            = 0.0.0.0

И затем перезапустите службу MySQL. Не зная, как это произойдет в Vagrant, но в Ubuntu вы должны ввести такую ​​команду:

sudo service mysql restart

Возможно, вам придется проверить свои права доступа к MySQL, чтобы убедиться, что пользователь в MySQL может быть использован с любого IP-адреса - иногда они строго устанавливаются на localhost или 127.0.0.1 - хорошо.

Как объясняется в официальная документация MySQL:

Сервер обрабатывает различные типы адресов следующим образом:

  • Если адрес 0.0.0.0, сервер принимает соединения TCP/IP на всех IPv4-серверах сервера.

  • Если адрес:, сервер принимает TCP/IP-соединения на всех серверах IPv4 и IPv6-интерфейсах. Используйте этот адрес, чтобы IPv4 и IPv6 на всех интерфейсах сервера.

  • Если адрес представляет собой IP-адрес, сопоставленный IPv4, сервер принимает соединения TCP/IP для этого адреса в формате IPv4 или IPv6. Для Например, если сервер привязан к:: ffff: 127.0.0.1, клиенты могут подключиться с помощью --host = 127.0.0.1 или --host =:: ffff: 127.0.0.1.

  • Если адрес является "обычным" адресом IPv4 или IPv6 (например, 127.0.0.1 или:: 1), сервер принимает соединения TCP/IP только для этого адреса IPv4 или IPv6.

Тем не менее, использование MySQL или любого сервера базы данных в мире нецелесообразно. Но это приемлемо в случае локального развития, подобного этому.

Таким образом, если включение сети MySQL не является вариантом, вы также можете использовать встроенные возможности туннелирования SSH в Sequel Pro для подключения к MySQL через SSH. Подробная информация о всех типах соединений показана на официальном сайте Sequel Pro здесь. Но этот скриншот прекрасно подводит итог.

В основном вы просто устанавливаете свою информацию о localhost/127.0.0.1 MySQL, как обычно. Но вы также добавляете информацию SSH, которую вы будете использовать для SSH на свой сервер. И Sequel Pro будет использовать это SSH-соединение для туннелирования и подключения к MySQL без проблем. Это может быть лучшим способом обработки, а не для решения проблем с сетями MySQL и разрешениями пользователей.

enter image description here

Для SSH-туннелирования в Sequel Pro вам просто нужно сделать следующее:

  • Имя: Имя, которое вы хотите для подключения.
  • MySQL Host: IP-адрес хоста MySQL, который должен быть localhost или 127.0.0.1
  • Имя пользователя: Имя пользователя базы данных MySQL.
  • Пароль: Пароль, подключенный к этому имени базы данных MySQL.
  • База данных: Дополнительно (база данных, к которой вы хотите подключиться)
  • Порт: По умолчанию это 3306, поэтому измените это, если вам определенно нужно что-то сделать.

Теперь вы устанавливаете настройки SSH для своей установки Vagrant:

  • SSH Host: Имя хоста или IP-адрес вашей машины-бродяги.
  • Пользователь SSH: Имя пользователя SSH для этой машины-бродяги.
  • Пароль SSH: Пароль, подключенный к этому пользователю SSH.
  • Порт SSH: По умолчанию 22, поэтому измените это, если вам определенно нужно установить что-нибудь еще.

Ответ 2

это моя конфигурация:

введите описание изображения здесь

Брандмауэр по умолчанию ssh user и пароль ssh все бродячие.

Ответ 3

Все, что вам нужно сделать, это отредактировать адрес привязки, расположенный здесь:

$ sudo nano /etc/mysql/my.cnf

Найдите параметр bind_address, который будет установлен в 127.0.0.0 и измените его на 0.0.0.0

После этого перезапустите mySQL:

$ sudo service mysql restart

Последний шаг - это просто обновление разрешений:

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

Затем подключитесь, как обычно, (изменив порт на то, что вы установили в своем бродяжном файле).

sequel pro settings

Обратите внимание, что здесь есть проблемы с безопасностью, так как все это довольно открыто, но для разработчиков это нормально.

Ответ 4

Попробуйте https://github.com/AlexDisler/mysql-vagrant, он позволяет подключаться без туннеля ssh (проверьте настройки install.sh для определенных настроек).

Ответ 5

Все приведенные выше ответы не сработали для меня, пока я не попробовал это:

  • Подключитесь к своему бродяжному экземпляру с помощью vagrant ssh
  • Когда просто введите passwd, чтобы установить новый пароль. Используйте пароль vagrant для согласованности.

Он легко соединится после этих шагов.

Благодаря @hugo в Как сделать Pro Pro с помощью PuPHPet?

Ответ 6

Ответ на адрес привязки прав, однако я обнаружил, что вместо изменения значения 0.0.0.0 лучше всего просто отредактировать файл my.cnf и вообще прокомментировать привязанный адрес.

Если вы это сделаете, а затем следуйте остальным оригинальным ответам, вы сможете подключиться через сиквел pro

Ответ 7

Для меня жизненно важная часть использовала 0.0.0.0 в качестве хоста MySQL вместо 127.0.0.1. Все остальное является обычным делом (с использованием SSH). Это работает для меня:

введите описание изображения здесь

Ответ 8

Ниже приведен снимок экрана для брандмауэра, подключенного с помощью mysql workbench от MAC введите описание изображения здесь

Ответ 9

Ваше подключение к вашей коробке Vagrant должно быть выполнено через SSH. Поэтому, если вы уже подключились раньше и внесли какие-либо существенные изменения в свою коробку Vagrant (например, уничтожить/перестроить), у вас может быть новый закрытый ключ и вам нужно обновить запись IP-адреса в ~/.ssh/known_hosts. Для этого откройте файл в vim и просто удалите строку, начинающуюся с вашего IP-адреса брандмауэра.

Ответ 10

Можно использовать vagrant port, чтобы проверить текущую переадресацию портов (в случае, если у одного есть несколько бродячих ящиков).

Также, если дело касается нескольких бродячих блоков, проблема может заключаться в том, что новый ключ ssh должен быть добавлен к хосту .ssh/known_hosts следующим образом:

  1. комментирует хост первого бродячего ящика на хосте .ssh/known_hosts;

  2. добавление хоста второго блуждающего ящика через диалоговое окно тестирования соединения Sequel Pro;

  3. раскомментируйте хост первого бродячего ящика на хосте .ssh/known_hosts.

Итак, оба бродячих ящика (каждый со своим ключом) теперь известны.