我正在制作一个小型聊天程序。我想用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数据库时,我得到一个错误,并且想法我可以尝试
由于
答案 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>