【问题标题】:i can't access to mysql database from c#我无法从 C# 访问 mysql 数据库
【发布时间】:2013-07-02 17:10:31
【问题描述】:

我有一个网站,在其中 phpmyadmin 创建一个数据库,我想从 c# 连接到它。

我在 Visual Studio 2010 中使用 MySQL connector for .NET

我的String Connection 是:

 server=158.58.185.197;database=porbarco_base;uid=****;pwd=****;CharSet=utf8;

但我无法连接到数据库并给出错误:Unable to connect to any of the specified MySQL hosts.

我如何连接到这个数据库。

我在stackoverflow 中看到很多线程,但没有解决我的问题。

【问题讨论】:

  • 你可以使用给定的信息从那台机器连接到数据库吗?
  • 那么你可以在你的代码之外的那台机器上作为那个用户连接到它吗?
  • 我可以在我的 php 代码中作为 localhost 连接到数据库。我可以用 C# 连接到我的电脑中的 localhost mysql

标签: c# mysql mysql-connector


【解决方案1】:

可能的问题在于您的 C# 较少,而对 MySQL 的远程访问较多

您需要检查以下内容。

  1. MySQL 是否在侦听网络地址。检查你的mysql配置文件。查找bind address 的条目。如果它设置为127.0.0.1,那么您只是在本地主机上监听,将其更改为0.0.0.0并记住重新启动服务

  2. 你的 linux 防火墙是否阻止远程访问 mysql 端口。

  3. 您的 mysql 是否允许指定用户从远程主机进行远程访问。见This link for an example of how to set this up

【讨论】:

  • 我无法访问mysql 配置文件和linux firewall。我在网站 navidiranian.ir 有一个帐户,并使用direct admin 来管理数据库和域等。我发现了我的问题并在下面的答案中解释它。
  • @MohammadRezaVahedi 你的评论没有意义。名称解析与它无关,您直接使用IP地址。不是这样的。很可能是您的主机提供商不支持远程访问 MySQL 数据库,这并不奇怪,因为这是一个很大的安全漏洞。使用 nmap 快速查看一下,该服务器上的端口 3306 未打开。
【解决方案2】:

如果您尝试使用 IP 地址直接访问它,则需要打开端口 3306。端口是否开放?如果应用程序与数据库托管在同一台服务器上,那么我建议使用 localhost 而不是 IP 地址来访问它。

【讨论】:

  • 端口 3306 已打开。我的应用程序是 C#,服务器是基于 linux 的。我想远程访问数据库。
  • 尝试在连接字符串中正确指定端口如下:Server=158.58.185.197;Port=3306;
  • 区分大小写吗?试试这个版本:Server=158.58.185.197;Port=3306;Database=porbarco_base;Uid=myUsername;Pwd=myPassword;CharSet=utf8;
  • 我这样做了,结果没有变化。
  • 您的问题是否与此帖子有关:stackoverflow.com/questions/5915534/…
猜你喜欢
  • 2013-04-14
  • 1970-01-01
  • 2020-06-12
  • 2010-12-10
  • 2015-02-19
  • 2020-02-12
  • 1970-01-01
  • 1970-01-01
  • 2014-11-06
相关资源
最近更新 更多