2016-12-27 37 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地址。
  • 点击添加主机。