2016-11-07 63 views
0

我搜索了很多,但無法解決這個問題。 我能夠訪問運行在不同windows計算機上的MySQL服務器。我已經採取步驟是如何連接到在天藍色的linux虛擬機上運行的mysql服務器

  1. 從命令行通過GRANT ALL PRIVILEGES ON DATABASE.* TO [email protected]'%' IDENTIFIED BY 'password';
  2. 改變my.ini文件綁定地址0.0.0.0
  3. 創建用戶和授予權限窗口MySQL服務器mysql -h windows server ip -u user -p

它工作正常,並從MySQL工作臺我能夠連接到我的機器的Windows MySQL服務器。但是在Linux虛擬機中,我做了同樣的事情

  1. 更改my.cnf文件並將綁定地址更改爲0.0.0.0。
  2. 創建用戶並授予許可,GRANT ALL PRIVILEGES ON DATABASE.* TO [email protected]'%' IDENTIFIED BY 'password';
  3. 從命令行LINUX MySQL服務器mysql -h linux server ip -u user -p

    但是對於我給密碼ERROR 2003(HY000)後得到以下錯誤:無法連接到MySQL通過下面的連接字符串<add name="MySqlConnection" connectionString="Server=LINUX_VM_SERVER_IP;Database=database;Uid=user;Pwd=password" providerName="MySql.Data.MySqlClient" /> 我得到錯誤從C#連接時,在「Linux服務器的IP」(10060)也服務器:找不到指定和mysql的主機

  4. 我已經在LINUX_VM中檢查了0.0.0.0:3306處於偵聽狀態。

  5. ,如果我嘗試使用遠程登錄/>telnet LINUX_VM_IP 3306 MYSQL LINUX_VM Server服務我得到了ERROR:連接到 LINUX_VM_IP ......無法打開連接到主機,端口3306:

+0

您是否嘗試從Azure外部進行連接(例如,您的本地計算機)?很難說實話,因爲你從不指定細節 - 只是很多配置和錯誤。 –

+0

如果您使用的是默認市場模板,那麼您的網絡安全組(NSG)將不會爲其創建針對MySQL的入站規則,因此您需要將該規則添加進去。 –

+0

我試圖從外部連接蔚藍。從我的本地機器MySQL工作臺以及從C#Web API。虛擬機內的數據庫連接正在運行,並且在vm中使用本地託管的應用程序進行測試。但是,這些都是我嘗試過並在Azure Linux VM之外連接後發生的錯誤。 –

回答

2

第一嘗試連接到託管數據庫的虛擬機上的數據庫。如果連接成功,那麼數據庫的配置是正確的。否則,請檢查數據庫的配置。

其次,如果你能連接到虛擬機上的數據庫,那麼這個問題最可能的原因是防火牆。請檢查本地防火牆(iptables)是否允許端口3306的入站連接。出於測試目的,您可以暫時禁用防火牆。此外,請檢查NSG是否已正確配置以允許端口3306上的入站流量。

此外,如果VNET已與NSG關聯,則我們還需要允許NSG中的入站流量。

enter image description here

+0

感謝您的回覆,我可以連接到Azure Linux VM中的數據庫。我會檢查你所說的配置,當我完成時,我會讓你知道。 –

+0

好的。正如你所說,在我們的團隊討論時可以這樣做,但我們並沒有使用它,因爲我們決定不從vm中公開數據庫,謝謝。 –

相關問題