【问题标题】:How to set up MySQL database to connect to from another computer?如何设置 MySQL 数据库以从另一台计算机连接?
【发布时间】:2012-05-24 15:17:39
【问题描述】:

我对此有很大的麻烦。

我想做的是:我想创建一个系统(在 C# 中),将(除其他外)允许用户相互发送简单的消息。所以我想创建一个 MySQL 数据库,它将基于服务器。然后,运行该系统的其他计算机将必须远程连接 到该数据库并读取某个表以查看它们是否有任何新消息。 我希望客户端计算机通过互联网连接到服务器上的数据库。

但是我该怎么做呢?

  1. 如何创建可以通过 Internet 连接的数据库?
  2. 我的连接字符串在客户端计算机上应该是怎样的?
  3. 我需要在客户端和服务器计算机上进行哪些配置?

非常感谢任何帮助,如果您能建议我如何实现我的目标。我是一个非常称职的程序员,但讨厌这些网络东西!

我正在使用 WPF 在 C# 中开发来访问数据库。所以它是一个桌面应用程序!

【问题讨论】:

  • 通过 Internet直接 连接到 SQL 服务器可能是个坏主意。也许相反,您应该构建一个 HTTP 接口,公开一个 SOAP 或 REST API,允许客户端访问 SQL 后端?大多数网络托管公司都可以为您托管。

标签: c# mysql remote-access instant-messaging


【解决方案1】:

这就是你如何做你要求做的事情。

使用 MySQL 连接器/NET ADO.NET 连接器。是这里。 http://dev.mysql.com/downloads/connector/net/5.1.html

按照说明进行设置。效果很好。

将您的 MySQL 服务器放在公共 IP 地址上。

让您的客户端软件程序集通过 ADO.NET 连接器连接到该公共 IP。

但是,拜托!

问问自己这是否是正确的做法。可能不是,因为当 MySQL 服务器(和所有表服务器)位于防火墙后面并接受来自有限数量的客户端包的连接时,它们的工作更加安全和可预测。

考虑按照 Mike Christensen 的建议去做。使用 ASP.NET 和 WCF 或任何您喜欢的堆栈来构建 MySQL 数据库的服务器驻留接口。然后,您推送给最终用户的客户端软件可以访问该服务器驻留界面。

该接口可以包含您需要的方法。 WCF 或任何其他用于构建服务器组件的堆栈都可以轻松而可靠地完成此任务。例如。

Client 1: This is moe. Here's a message for curly:  "Look at the grouse, look at the grouse".
Server: OK

Client 2: This is curly: any new messages?
Server: moe says "Look at the grouse, look at the grouse".

Client 1: This is moe. When did curly last collect my messages?
Server: ten minutes ago.

Client 2: This curly. any new messages?
Server: NO

这比仅仅在互联网上提供 MySQL 接口更安全、更具可扩展性,而且性能会更好。

顺便说一句,您似乎想要一个即时通讯协议。您可能想研究使用http://jabber.org 上的开源系统。如果您自己构建,这些东西可能很难做好。

【讨论】:

  • 感谢您的详细回复 Ollie Jones! ;) 我可以澄清一些事情吗?当使用一个接口(如 WCF 接口)时,这是否仍然意味着我的数据库需要“服务”,还是只能在机器上本地运行?问题是我想存储用户可能收到的消息,所以它不像即时消息系统那么简单。
  • 对不起,一直按'enter'不正确!我也不知道我需要在 MySql 的 Workbench 中与哪些设置或功能进行交互以使数据库能够远程访问……你能帮我解决这个问题吗……谢谢 ;)
  • 大概您可以使用带有localhost 的连接字符串从您的C# 应用程序连接到mySql。现在尝试使用您机器的实际 IP 地址而不是 localhost。 mySQL 数据库本质上是“服务的”。当您在本地访问它们时,这只是一种特殊情况。我希望这会有所帮助。
猜你喜欢
  • 2012-03-16
  • 1970-01-01
  • 1970-01-01
  • 2014-04-22
  • 2019-06-06
  • 2012-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多