Подключитесь к 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
следующим образом:
комментирует хост первого бродячего ящика на хосте .ssh/known_hosts
;
добавление хоста второго блуждающего ящика через диалоговое окно тестирования соединения Sequel Pro;
раскомментируйте хост первого бродячего ящика на хосте .ssh/known_hosts
.
Итак, оба бродячих ящика (каждый со своим ключом) теперь известны.