我正在尝试将我的MySQL
数据库与C#
连接,但无法连接。
我在用
static string connstring = @"server=my.live.ip;userid=user;password=123;database=db_name;port=3306";
但我还是
使用方法'mysql_native_password'对用户'user'的主机'my. live. ip'进行身份验证失败,并显示消息:用户"user'@" 202.xxx.xxx.xxx"的访问被拒绝(使用密码:否)'
我已经搜索过了,但没有找到任何合适的解决方案。
- P. S:**我使用的
live IP
属于azure
,即MySQL
数据库通过xampp
托管在Azure服务器上
- P. S:**我使用的
任何帮助都将不胜感激
7条答案
按热度按时间wqsoz72f1#
(using password: NO)
表示未提供密码。我不熟悉C#的连接语法,但我怀疑或者可能没有使用
connstring
。还要检查MySQL端。执行
SHOW GRANTS FOR 'user'@'202%'
或SHOW GRANTS FOR 'user'@'202.xxx.xxx.xxx'
,这取决于您使用的是'202%'
还是'202.xxx.xxx.xxx'
作为“主机”。你应该回到
注:主机名与IP地址可能存在问题。
ygya80vv2#
有几种可能可以尝试-
1.将连接字符串中的服务器名称与Azure门户上的设置进行匹配。
1.看起来你提到的用户名和密码是假的(可以理解)。检查你的实际用户名或密码是否有任何特殊字符,你将不得不对它们进行适当的编码以转义。
例如,如果您的密码是my〉Pass,则连接字符串应如下所示。
static string connstring = @"server=servername;userid=user;password=my>Pass;database=db_name;port=3306";
如果您想探索一下,这里有一个full list。
brc7rcf03#
}
dgtucam14#
你可以查一下,但这里有代码,无论如何,我发现:
将所有端口号、用户名、密码、数据库名称和服务器IP替换为您需要的内容。
代码:
我希望这个代码对你有用。
它也看起来像你给我的用户名或密码无效的错误。
rpppsulh5#
你可以参考下面的链接来使用c# https://learn.microsoft.com/en-us/azure/mysql/connect-csharp创建和访问mysql数据库
gtlvzcf86#
您的密码是否以
#
或类似字符开头,并且您将其存储在ini
之类的配置文件中由于一些配置类型将一些特殊字符视为注解或其他内容,因此密码变为
null
。为了验证,将密码更改为字母数字一次,然后测试。我在使用
password=#strongP
时遇到了这个问题siotufzp7#
试试这个: