c#:连接到php Mysql数据库

时间:2013-07-15 00:49:42

标签: c# mysql

我正在制作一个小型聊天程序。我想用c#从mysql数据库中获取数据。 但我不断收到错误。

An unhandled exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll

Additional information: Unable to connect to any of the specified MySQL hosts.

我试过了:

string MyConString = "SERVER=localhost;" +
                     "DATABASE=databse;" +
                     "UID=root;" +
                     "PASSWORD=passowrd";
MySqlConnection connection = new MySqlConnection(MyConString);

它有效。但是当我尝试连接到本地主机上的一个mysql数据库时,我得到一个错误,并且想法我可以尝试

由于

2 个答案:

答案 0 :(得分:0)

试试这个

//create a MySQL connection with a query string
MySqlConnection connection = new MySqlConnection("server=localhost;database=cs;uid=root;password=abcdaaa");

//open the connection
connection.Open();

//close the connection
connection.Close();

答案 1 :(得分:0)

您应该检查您的服务器是否允许远程连接。 Here您可以找到有关此内容的详细信息。

然后,您应该检查您在连接字符串中使用的用户是否可以从外部localhost访问。引自this回答:

  

您尝试连接的用户是否允许连接   你的主人?有关这方面的更多信息,请参阅MySQL文档   http://dev.mysql.com/doc/refman/5.1/en/create-user.html和   http://dev.mysql.com/doc/refman/5.1/en/account-names.html,   特别是帐户名的语法是'user_name'@'host_name'。如果   您希望能够从任何计算机连接给定帐户,   帐户名称将遵循'user_name'@'%'等语法,其中%   是匹配任何主机名的通配符。

如果以上都不起作用,您应该最终检查是否没有阻止您访问数据库的防火墙规则。有关here的更多详细信息,但首先要尝试远程登录数据库服务器上的3306端口(即如果您的数据库使用默认端口)。

PS :我刚刚发现您正在使用root用户帐户连接到数据库。默认情况下,root只能从localhost(source)登录:

  

在Windows上,创建的root帐户只允许来自本地主机的连接。可以通过指定主机来建立连接   name localhost或IP地址127.0.0.1。如果用户选择了   在安装期间启用远程计算机的root访问权限选项   Windows安装程序会创建另一个允许的root帐户   来自任何主机的连接。

     

在Unix上,每个root帐户都允许来自本地主机的连接。可以通过指定主机名localhost来进行连接,   IP地址127.0.0.1,或实际的主机名或IP地址。

因此,您应该以用户访问级别开始调查。如果root被限制为localhost,那么最好保留它(出于安全原因),并创建一个新用户,可以从应用程序远程访问数据库(更多详细信息here)。 / p>