如何使用C#连接到远程MySQL服务器?

如何使用C#连接到远程MySQL服务器?,c#,mysql,C#,Mysql,我有一个C#应用程序,可以访问另一台计算机上的MySQL服务器。我正试图通过IP做这件事。这是我的连接字符串: server = "192.168.10.221"; database = "restaurantdb"; uid = "root"; password = ""; string connectionString; connectionString = "SERVER=" + server + "; PORT = 3306 ;" + "DATABASE=" + database + "

我有一个C#应用程序,可以访问另一台计算机上的MySQL服务器。我正试图通过IP做这件事。这是我的连接字符串:

server = "192.168.10.221";
database = "restaurantdb";
uid = "root";
password = "";
string connectionString;
connectionString = "SERVER=" + server + "; PORT = 3306 ;" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
mycon = new MySqlConnection(connectionString);
现在的想法是,我会通过互联网或Wi-Fi连接,这两台电脑都是通过互联网或Wi-Fi连接的。然后,我将通过C#上编码的SQL字符串访问数据库。现在我也可以通过局域网连接它们,但我不知道如何连接

我的代码中出现了此异常

{"Access denied for user 'root'@'Crave-PC.lan' (using password: NO)"}   System.Exception {MySql.Data.MySqlClient.MySqlException}

你知道如何通过网络访问服务器吗?

问题在于MySQL服务器端,root用户没有远程连接的权限。 要授予根用户远程连接的权限,只需在mysql命令行中键入:

GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'rootPass';
只需为您当前的根密码更改“rootPass”,如果根没有密码,MySQL将不允许您连接,因此您必须为其定义一个密码

一方面注意:作为安全最佳实践,您应该定义一个不同于root用户的用户,以便从客户端应用程序访问mysql数据库。


希望对您有所帮助,

此线程增加了一个功能:

在某些情况下,如果两台计算机连接到同一网络,则尽管配置了源计算机并从客户端计算机向用户授予了权限,但上面定义的连接字符串仍可能不起作用

在这种情况下,请考虑(在进一步移动并在源计算机上采取更大的行动,例如修改MySQL配置文件等)时,请使用“计算机名称作为服务器名称而不是IP地址”。p> i、 e

  • 首先,如上所述向用户授予特权
  • 但是 请尝试以下操作,而不是上面建议的连接字符串 连接字符串:
因此,连接字符串如下所示:

server = "pc-name-whateveritis";
database = "restaurantdb";
uid = "root";
password = "";
string connectionString;
connectionString = "SERVER=" + server + "; PORT = 3306 ;" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
mycon = new MySqlConnection(connectionString);
源计算机的名称在许多情况下可能有效源计算机的IP地址返回错误


祝你好运

将root用户更改为其他用户名并设置密码对于远程访问非常有效,因为root用户只有在本地主机上时才具有完全访问权限。在局域网上使用IP地址会出现错误,因此请使用计算机名。

您确定密码没有错吗?它确实连接了,尽管您遇到了拒绝访问错误,所以您的凭据可能有问题,如它所说。可能root用户只允许从localhost登录。创建具有远程访问权限的用户。如何创建具有远程访问权限的主机?我已经安装了workbench。我这里还有一个名为“root”的用户,没有密码。非常感谢!我欠你太多了!我正在使用xampp。如果我使用phpmyadmin,我如何访问mysql命令行?