c#:连接到php-Mysql数据库

本文关键字:php-Mysql 数据库 连接 | 更新日期: 2023-09-27 18:22:22

我正在制作一个小型聊天程序。我想用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数据库时,我遇到了一个错误,我想我可以尝试

感谢

c#:连接到php-Mysql数据库

试试这个

//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();

您应该检查是否允许远程连接到您的服务器。在这里你可以找到一些细节。

然后,您应该检查您在连接字符串中使用的用户是否具有来自localhost外部的访问权限。引用这个答案:

是否允许与您尝试连接的用户进行连接你的主人?有关更多信息,请参阅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"@"%"的语法,其中%是与任何主机名匹配的通配符。

如果以上都不起作用,您应该最终检查是否有防火墙规则阻止您访问数据库。这里有更多的细节,但首先要尝试的是telnet数据库服务器上的3306端口(也就是说,如果您的数据库使用默认端口)。

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

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

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

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