Статья последний раз была обновлена 04.03.2023
Как подключиться к серверу Mysql внутри VirtualBox Vagrant?
Я установил новую машину VirtualBox с Vagrant, и внутри этой виртуальной машины я установил Mysql Server. Как я могу подключиться к этому серверу вне vm? Я уже перенаправляю порт 3306 Vagrantfile, но когда я пытаюсь подключиться к серверу mysql, он срабатывает с ошибкой:
‘чтение исходного пакета связи’
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
6 ответов
Убедитесь, что MySQL привязан к 0.0.0.0, а не 127.0.0.1, или он не будет доступен извне машины
Вы можете убедиться в этом, отредактировав файл my.conf и найдите элемент bind-address
— вы хотите, чтобы он выглядел как bind-address = 0.0.0.0
. Затем сохраните это и перезапустите mysql:
sudo service mysql restart
Если вы делаете это на производственном сервере, вы хотите знать о последствиях безопасности, обсуждаемых здесь: https://serverfault.com/questions/257513/how-bad-is-setting-mysqls-bind-address-to-0-0-0-0
Войдите в свою рамку с помощью ssh vagrant@127.0.0.1 -p 2222
(пароль бродяг)
Затем: sudo nano /etc/mysql/my.cnf
и закомментируйте следующие строки С#
#skip-external-locking
#bind-address
сохранить его и выйти
тогда: sudo service mysql restart
Затем вы можете подключиться через SSH к серверу MySQL.
Для тех, кто пытается это сделать, используя mysql workbench или продолжение pro, это входы:
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)
источник: https://coderwall.com/p/yzwqvg
Недавно я столкнулся с этой проблемой. Я использовал PuPHPet для создания конфигурации.
Чтобы подключиться к MySQL через SSH, «бродячий» пароль не работал у меня, вместо этого мне пришлось пройти аутентификацию через файл ключа SSH.
Для подключения к MySQL Workbench
Способ подключения
Стандартный TCP/IP через SSH
SSH
Hostname: 127.0.0.1:2222 (forwarded SSH port)
Username: vagrant
Password: (do not use)
SSH Key File: C:vagrantpathpuphpetfilesdotsshinsecure_private_key
(Locate your insercure_private_key)
MySQL
Server Port: 3306
username: (root, or username)
password: (password)
Проверьте соединение.
Ну, поскольку ни один из ответов не помог мне, мне пришлось больше искать и нашел решение в этой статье.
И ответ в двух словах следующий:
Подключение к MySQL с помощью 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)>
Используя данный подход, я смог подключиться к базе данных mysql в vagrant с компьютера Ubuntu хоста с помощью MySQL Workbench, а также с помощью Valentina Studio.
Это сработало для меня: Подключиться к MySQL в 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 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
Другие вопросы по меткам mysql
vagrant
virtualbox
http://qaru.site/questions/62788/how-to-connect-to-mysql-server-inside-virtualbox-vagrant
Кандидат технических наук, доцент кафедры ИУ-6 (Компьютерные системы и сети) Московского государственного технического университета им. Н. Э. Баумана. Самый молодой в России PhD in Computer Science. Эксперт в области компьютерных технологий и программирования.
Стаж: 8 лет.
Образование: МГТУ им. Н. Э. Баумана, к.т.н.
- Как узнать IP-адрес по MAC-адресу - 07.04.2023
- Пинг проходит, а страницы в браузере не открываются - 07.04.2023
- Что если сайт пингуется «извне», но не открывается из под «локалки»? - 07.04.2023