Как подключиться к серверу Mysql внутри VirtualBox Vagrant?
Я установил новую машину VirtualBox с Vagrant,и внутри этой виртуальной машины я установил сервер Mysql. Как я могу подключиться к этому серверу вне виртуальной машины? Я уже пересылаю порт 3306 Vagrantfile , но когда я пытаюсь подключиться к серверу mysql, это resposts с ошибкой: 'чтение исходного пакета связи'
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
7 ответов:
убедитесь, что MySQL привязывается к 0.0.0.0, а не 127.0.0.1, или он не будет доступен извне машины
вы можете убедиться в этом, отредактировав свой my.conf и ищем
bind-address
item--вы хотите, чтобы он выглядел как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 или sequel 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, пароль "vagrant" не работал для меня, вместо этого мне пришлось аутентифицироваться через ключевой файл 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
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'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
вот шаги, которые работали для меня после входа в поле:
найдите файл конфигурации 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].
bind-address = 0.0.0.0
сохраните изменения в файле конфигурации и перезапустите служба MySQL.
service mysql restart
создать / предоставить доступ пользователю к базе данных:
подключиться к базе данных MySQL как пользователь root и выполните следующие команды SQL:
mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password'; mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'%';