2016-12-27 36 views
0

我有一個新的新應用程序,現在我應該安裝在另一臺計算機上,我已連接到同一網絡,並且該應用程序在我的計算機上運行良好,但沒有其他人獲得System.InvalidOperationException:連接必須有效並打開,服務器具有數據庫,並且我可以使用其ip連接到服務器,但其他計算機不是,它連接正確,如果我把ip服務器具有默認在同一子網上它的IP是192.168.1.130,但是我在我的電腦中使用的IP是220.104.1.X,它連接正常,但是在其他情況下,我做錯了什麼?連接字符串如下:C#和Mysql不工作

myConnectionString = "Server=201.122.204.102; Port=3306; Database=basedatos; Uid=root; Pwd=root;"; 
+0

有什麼錯誤 – Alejandro

回答

0

我認爲你的錯誤是端口....我記得當我在我的連接字符串中使用端口我得到了錯誤的天。只要我刪除了它的工作。顯然,連接字符串會知道要去哪個端口。

myConnectionString =「Server = 201.122.204。102;數據庫= basedatos; UID =根; PWD =根;」

嘗試當您嘗試打開連接是

+0

由於某種原因,這是問題,實際上連接運行更順利,非常感謝 – Zenoheld

+0

很高興幫助! –

0

您必須確保客戶端應用程序可以ping服務器。使用cmd並執行ping 127.0.0.1(用服務器IP替換IP)。如果ping成功,則表示IP應該在連接字符串中工作,假定您使用的是正確的端口uid和pwd。如果ping失敗,則意味着您的客戶端無法連接到服務器IP。您可能需要與網絡管理員協調解決此問題。你可以嘗試的是使用服務器名稱而不是服務器IP,例如Server=MYSERVER; Port=3306; Database=basedatos; Uid=root; Pwd=root;。使用服務器名稱對於具有動態IP的服務器非常有用。

更新:

請確保您的mysql服務器中啓用了遠程訪問。請參閱tutorial和/或granting remote access

你也可以在MySQL中執行這個查詢:

select user, host, password from mysql.user; 

查看是否有多個root用戶。您必須確保所有帳戶都有對應的密碼。

use mysql; 
update user set password=PASSWORD("NEWPASSWORD") where User='root'; 
flush privileges; 

有不同的可能原因,你無法遠程連接到你的mysql服務器,可以是用戶憑據,特權,防火牆等等。

+0

的IP實際上是靜態的,是的,其實是我的第一個想法我平這樣 – Zenoheld

+0

的IP實際上是靜態的,是的,其實是我的第一個想法,我ping這樣的ping -A 220.104.1.X,它是成功的。 – Zenoheld

0

問題可能是因爲Remote Database Access Hosts。您需要允許外部Web服務器通過將其域名添加到能夠訪問您網站上的數據庫的主機列表來訪問您的MySQL數據庫。

默認情況下,所有IP都被阻止,並且必須添加到訪問列表才能訪問服務器。因此,在從另一臺計算機連接到MySQL之前,必須啓用連接計算機作爲訪問主機。

您可以通過以下步驟添加主機

  • 登錄到的cPanel。
  • 在數據庫下,單擊遠程MySQL圖標。
  • 在主機字段中輸入連接的IP地址。
  • 點擊添加主機。