94

Vagrant を使用して新しい VirtualBox マシンをマウントし、その VM 内に Mysql Server をインストールしました。VM の外部でそのサーバーに接続するにはどうすればよいですか? すでに Vagrantfile のポート 3306 を転送していますが、mysql サーバーに接続しようとすると、「初期通信パケットを読み取っています」というエラーで再送信されます。

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
4

7 に答える 7

128

MySQL が 127.0.0.1 ではなく 0.0.0.0 にバインドされていることを確認してください。そうしないと、マシンの外部からアクセスできなくなります。

/etc/mysql/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

于 2012-05-29T07:04:17.347 に答える
49

ssh vagrant@127.0.0.1 -p 2222(password vagrant)でボックスにログインします

次にsudo nano /etc/mysql/my.cnf、次の行を # でコメントアウトします。

#skip-external-locking 
#bind-address

保存して終了

それから:sudo service mysql restart

その後、SSH 経由で MySQL サーバーに接続できます。

于 2012-09-06T12:33:07.323 に答える
18

最近この問題に遭遇しました。PuPHPet を使用して構成を生成しました。

SSH 経由で MySQL に接続するには、「vagrant」パスワードが機能せず、代わりに SSH キー ファイル経由で認証する必要がありました。

MySQL Workbench に接続するには

接続方法

SSH 上の標準 TCP/IP

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)

接続をテストします。

于 2014-08-17T23:18:18.697 に答える
17

mysql ワークベンチまたは 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

于 2013-11-15T00:48:38.700 に答える
13

さて、与えられた回答はどちらも役に立たなかったので、もっと調べて、この記事で解決策を見つける必要がありました.

そして答えを一言で言うと次のようになります。

MySQL Workbench を使用して MySQL に接続する

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 Workbench と Valentina Studio を使用して、ホスト Ubuntu マシンから vagrant で mysql データベースに接続できました。

于 2015-04-13T11:56:29.293 に答える
1

This worked for me: Connect to MySQL in 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
于 2015-07-26T15:02:32.023 に答える