簡體   English   中英

從遠程計算機訪問MYSQL

[英]Accessing MYSQL from a remote computer

下午好,

我正在嘗試公開訪問客戶端服務器(Windows Server 2012)中的mysql數據庫設置,以便我的應用程序可以在白天向其發送一些信息。 該應用程序將定位在我的國家/地區,因此本地連接是不可能的。 對於許多用戶發布的此問題,我已經采取了許多解決方案,但都無濟於事,但是如果您覺得有人提出並回答了這個問題,我深表歉意。

對於初學者,數據庫正在3306默認端口上工作,並且聯機端口掃描程序將端口檢測為開放狀態(我聯系了ISP,以便他們可以打開該端口)。

我編輯了mysql配置文件“ my.ini”以注釋bind-address值,以便它偵聽它連接到的任何ip(localhost.lan和public ip)。 我可以使用127.0.0.1、10.0.0.129(本地lan)上的mysql.exe連接到數據庫,但是當我嘗試使用公共ip地址或主機名(解析為我的公共ip的dyndns.org域名)時,地址)出現以下錯誤:

錯誤2003(HY000):無法連接到“ xxx.xxx.xxx.xxx”上的MySQL服務器(10061)

我的問題是:即使我的端口檢出為開放狀態,這也可能是防火牆問題嗎? 即使端口打開,它仍然可能是端口轉發問題,對嗎? 我是否應該要求我的ISP在3306端口上轉發所有要發送到特定計算機的請求?

訪問數據庫的最佳方法是使用ssh隧道。 大多數數據庫客戶端都允許您執行此操作(例如,如果您的操作系統是Windows,則為MySQL Workbench)。

這個想法是通過遠程服務器上的ssh連接,然后使用localhost ip打開mysql連接。

在Google中搜索“數據庫ssh隧道”或“ mysql ssh隧道”。

事實證明,其他線程上的所有建議都是正確的。 為了使您的MySQL服務器可從公共計算機訪問,您需要刪除MySQL配置文件(my.ini)中的bind-address行。 服務器應開始在其任何可用網絡上偵聽。 然后,您需要創建一個具有適當權限的用戶來遠程訪問數據庫。 使用此方法https://stackoverflow.com/a/8454003/1338401

導致我出現問題的部分是防火牆/路由器配置。 您需要打開服務器正在偵聽的門,並將其轉發到服務器計算機。 就我而言,我無法訪問路由器,因此我必須聯系我的ISP,並指示他們打開端口並轉發端口。

正如許多人指出的那樣,MySQL使用未加密的tcp / ip連接進行連接,由於安全原因,不應使用此解決方案。

暫無
暫無

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

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