Я установил новую машину VirtualBox с Vagrant, и внутри этой виртуальной машины я установил сервер Mysql. Как я могу подключиться к этому серверу за пределами виртуальной машины? Я уже перенаправляю порт 3306 Vagrantfile, но когда я пытаюсь подключиться к серверу mysql, он отвечает с ошибкой: «чтение начального пакета связи»
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
mysql
virtualbox
vagrant
ризидоро
источник
источник
Ответы:
Убедитесь, что MySQL привязан к 0.0.0.0, а не к 127.0.0.1, иначе он не будет доступен извне.
Вы можете убедиться в этом, отредактировав файл my.conf и выполнив поиск
bind-address
элемента - вы хотите, чтобы он выглядел такbind-address = 0.0.0.0
. Затем сохраните это и перезапустите mysql:Если вы делаете это на производственном сервере, вы хотите знать о последствиях для безопасности, обсуждаемых здесь: /server/257513/how-bad-is-setting-mysqls-bind-address-to -0-0-0-0
источник
sed -i 's/symbolic-links=0/symbolic-links=0\nbind-address=0.0.0.0/g' /etc/my.cnf
bind-address
строчкуHost '10.0.2.2' is not allowed to connect to this MySQL server
. Но решено с помощью serverfault.com/a/486716/147813mysql -e "create user 'root'@'10.0.2.2' identified by 'vagrant'; grant all privileges on *.* to 'root'@'10.0.2.2' with grant option; flush privileges;"
Войдите в свой ящик с помощью
ssh vagrant@127.0.0.1 -p 2222
(пароль vagrant)Затем:
sudo nano /etc/mysql/my.cnf
и закомментируйте следующие строки с помощью ##skip-external-locking #bind-address
сохранить и выйти
тогда:
sudo service mysql restart
Затем вы можете подключиться через SSH к вашему серверу MySQL.
источник
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
# skip-external-locking
решил это!Я недавно столкнулся с этой проблемой. Я использовал 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:\vagrantpath\puphpet\files\dot\ssh\insecure_private_key (Locate your insercure_private_key)
MySQL
Проверить соединение.
источник
Для тех, кто пытается сделать это с помощью mysql workbench или sequel pro, это входные данные:
источник: https://coderwall.com/p/yzwqvg
источник
vagrant ssh-config
команды.Что ж, поскольку ни один из приведенных ответов мне не помог, мне пришлось поискать больше и найти решение в этой статье.
И вкратце ответ таков:
Подключение к 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 в бродяге с хост-машины Ubuntu с помощью MySQL Workbench, а также с помощью Valentina Studio.
источник
$HOME/project/.vagrant/machines/default/virtualbox/private_key
в Ubuntu 14.04vagrant ssh-config
команды.Вот шаги, которые сработали для меня после входа в ящик:
Найдите файл конфигурации 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
В Ubuntu 16 путь обычно
/etc/mysql/mysql.conf.d/mysqld.cnf
Измените файл конфигурации для адреса привязки:
Если он существует, измените значение следующим образом. Если его нет, добавьте его где-нибудь в разделе [mysqld].
Сохраните изменения в файле конфигурации и перезапустите службу MySQL.
Создать / предоставить доступ пользователю базы данных:
Подключитесь к базе данных MySQL как пользователь root и выполните следующие команды SQL:
mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password'; mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'%';
источник
Это сработало для меня: подключиться к 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'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
источник