gpt4 book ai didi

c# - 即使添加用户后,MySQL (MariaDB) 身份验证也失败 'user' @'localhost'

转载 作者:行者123 更新时间:2023-11-29 20:48:14 25 4
gpt4 key购买 nike

我为我的数据库创建了一个测试用户。它是MySQL/MariaDB(运行XAMPP自带的MySQL服务器)。

创建测试用户的步骤:

CREATE USER 'user1'@'%' IDENTIFIED BY 'user1';
GRANT ALL PRIVILEGES ON mydb.* TO 'user1'@'%' IDENTIFIED BY 'user1';
FLUSH PRIVILEGES;

接下来,我尝试以该用户身份使用 C# WinForms 应用程序登录。

由于我在本地计算机上,因此我仅使用 127.0.0.1 作为主机。

连接字符串为:Server=127.0.0.1;端口=3306;数据库=mydb; Uid=用户1; Pwd=user1;

我在尝试打开连接时收到以下错误消息:

使用方法“mysql_native_password”对用户“user1”的主机“127.0.0.1”进行身份验证失败,并显示消息:用户“user1”@“localhost”的访问被拒绝(使用密码:YES)

在执行SELECT主机、用户、密码FROM mysql.user后,我得到以下信息:

+-----------+-------+-------------------------------------------+
| host | user | password |
+-----------+-------+-------------------------------------------+
| localhost | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | | |
| localhost | pma | |
| % | user1 | *B9CFB5C1F2F7B45EF0F9A826B2250F6250D85E73 |
+-----------+-------+-------------------------------------------+

那么,为什么我会看到此错误消息?由于user1的域被定义为any (%),我应该能够从localhost127.0与该用户连接.0.1,不是吗?

最佳答案

问题是 % 不包含 localhost,因为与任何其他连接相比,从 localhost 设置连接的方式存在差异。 IP地址。将主机名更改为我的计算机的公共(public) IP 地址是有效的,尽管我可能会为相同的用户名添加另一个用户条目,但将 localhost 作为域。

关于c# - 即使添加用户后,MySQL (MariaDB) 身份验证也失败 'user' @'localhost',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38277972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com