簡體   English   中英

如何遠程連接在基於Vagrant的Ubuntu 16.04虛擬服務器上運行的MySQL?

[英]How to connect to MySQL, running on a Vagrant-based, Ubuntu 16.04 virtual server, remotely?

我可能還沒有嘗試過任何東西。 所以這里...

我正在使用Ubuntu 16.04 LTS運行基於Vagrant的虛擬機。 確切地說,是“ ubuntu / xenial64”框。 MySQL的(27年5月7日分布)是否正確安裝,外部連接來自任何IP地址允許(即bind-address = 0.0.0.0已經設置內/etc/mysql/mysql.conf.d/mysqld.cnf )。 已經為我正在使用的數據庫用戶設置了所有特權,並且已經正確設置了它們,MySQL服務器正在運行,甚至可以從phpMyAdmin中進行訪問。 Vagrantfile ,服務器設置了IP地址,並且還為主機和來賓上的3306設置了端口轉發:

  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.network "forwarded_port", guest: 3306, host: 3306

我想做的是從主機上的HeidiSQL訪問MySQL。 以下是連接SettingsSSH tunnel選項卡:

在此處輸入圖片說明

在此處輸入圖片說明

SSH用戶名和密碼均為“ vagrant”。

一旦我嘗試打開連接,我從PLink獲得的第一個通知對話框是:

在此處輸入圖片說明

然后...

在此處輸入圖片說明

一切都應該沒問題! 我怎么確定 因為我已經在“ ubuntu / trusty64”上嘗試了完全相同的配方,即Ubuntu 14.04 LTS盒。

這個問題的根源是什么?

在MySQL中,默認情況下禁用遠程root訪問。 嘗試運行以下命令以啟用該功能:

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES;

在您的情況下,用戶名和密碼均應為dev。

我還必須運行以下命令: sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf然后service mysql restart

另外,我不必使用ssh隧道。

然后,您可以將它們包括在“ vagrant”框的配置中,尤其是在使用Shell配置時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM