[英]c# connecting to mysql on different server
我有一个运行在不同网站空间的ac #web服务到我的MySQL数据库。 我想将它们链接在一起,所以有以下c#代码。
server = "www.***.com";
database = "MyDataBase";
uid = "admin";
password = "Password";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
connection = new MySqlConnection(connectionString);
try
{
connection.Open();
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
Console.WriteLine(ex.Message);
}
在catch异常中我得到以下错误
“访问被拒绝用户'admin'@'cpc13-ches4-2-0-cust195.9-1.cable.virginmedia.com'(使用密码:是)”
我现在只在本地运行它,所以我不知道这是帮助还是阻碍。
检查您的MySQL用户设置,以确保允许admin
帐户从localhost
以外的计算机登录。
您可以验证允许用户连接的主机,如下所示:
select user, host from mysql.user
如果admin
用户只能从localhost连接,那么您要么为要连接的新主机设置权限,要么为所有使用%
主机设置权限。
你可以看到admin
对localhost的权限如下:
show grants for 'admin'@'localhost'
然后,您可以复制/粘贴更改主机部分的授权,以在另一台主机上授予相同的权限。
您必须为admin @ cpc授予访问权限.......
登录mysql并执行以下操作:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%'
-> WITH GRANT OPTION;
或者首先使用此命令检查以查看priv。
SHOW GRANTS FOR 'admin'@'localhost';
然后再试一次...
确保您的MySql服务器允许远程连接。 也许你的连接字符串不是确切的连接字符串。 在这里检查连接字符串: http : //connectionstrings.com/mysql
你想去:
Security > Logins > Click your account > Properties > User Mappings
并确保您拥有正确的权限
需要在服务器上打开端口3306
string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=112.***.**.***;" + "DATABASE=dbname;" + "UID=u_name;" + "PASSWORD=u_pass;port=3306;" + "OPTION=3"; OdbcConnection MyConnection = new OdbcConnection(MyConString); MyConnection.Open();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.