我无法从 C# 访问 mysql 数据库
Posted
技术标签:
【中文标题】我无法从 C# 访问 mysql 数据库【英文标题】:i can't access to mysql database from c# 【发布时间】: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.
我如何连接到这个数据库。
我在***
中看到很多线程,但没有解决我的问题。
【问题讨论】:
你可以使用给定的信息从那台机器连接到数据库吗? 那么你可以在你的代码之外的那台机器上作为那个用户连接到它吗? 我可以在我的 php 代码中作为 localhost 连接到数据库。我可以用 C# 连接到我的电脑中的 localhost mysql 【参考方案1】:可能的问题在于您的 C# 较少,而对 MySQL 的远程访问较多
您需要检查以下内容。
MySQL 是否在侦听网络地址。检查你的mysql配置文件。查找bind address
的条目。如果它设置为127.0.0.1
,那么您只是在本地主机上监听,将其更改为0.0.0.0
并记住重新启动服务
你的 linux 防火墙是否阻止远程访问 mysql 端口。
您的 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; 我这样做了,结果没有变化。 您的问题是否与此帖子有关:***.com/questions/5915534/…以上是关于我无法从 C# 访问 mysql 数据库的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 c#“第 1 行的 SQL 语法错误”将数据从 Ms Access 迁移到 MySQL 工作台