我的应用程序的 MySQL 访问被拒绝,但其他人工作正常

Posted

技术标签:

【中文标题】我的应用程序的 MySQL 访问被拒绝,但其他人工作正常【英文标题】:MySQL Access denied for my application, but others work fine 【发布时间】:2017-09-13 14:01:19 【问题描述】:

我正在尝试通过我的应用程序远程连接到我的 mysql 数据库以交换一些数据。如果我为 Ubuntu 编译我的 C# 代码并在本地运行它,它就可以工作。但是当我尝试从 Visual Studio 中运行它以使用调试器时,我得到了错误

Access denied for user 'jackilion'@'192.168.1.110' (using password: YES)

我的用户jackilion拥有所有权限

GRANT ALL PRIVILEGES ON *.* TO 'jackilion'@'%' IDENTIFIED BY '*****';

此外,我可以使用 DBeaver 或其他数据库程序使用同一用户和同一台计算机进行连接。

Soo... 我的代码应该是正确的,因为如果我在安装 MySQL 的机器上运行它,我可以连接它,但我的 MySQL 设置也应该是正确的,因为我可以从我的笔记本电脑远程连接?! 我很绝望,请帮帮我。

谢谢你, 杰克

编辑 我的连接字符串:

static string ConnectionInfo =  "server=192.168.1.114;" + 
                                    "database=Data;"+
                                    "username=jackilion;"+
                                    "password=*****";

在 Ubuntu 机器上运行时我唯一更改的是将服务器地址更改为“localhost”。

【问题讨论】:

为什么在ubuntu上改成localhost?我192.168.1.114 ubuntu 机器本身? 是的,MySQL 正在我的 ubuntu 机器上运行,它是 192.168.1.114 只是出于兴趣,在 Ubuntu 机器上,您可以使用 127.0.0.1 而不是 localhost 连接服务器。 “MySQL 对 Localhost 的处理方式不同,因为它通过本地 unix 套接字而不是网络接口。” - 所以你并没有真正比较相似类型的连接。 是的。我可以从 Ubuntu 机器连接到“localhost”、“127.0.0.1”和“192.168.1.114”(这是 Ubuntu 机器 IP)。 【参考方案1】:

好吧,我终于明白了……这是一个完全在我身上的愚蠢错误。 我的密码包含字符“§”,当我将它发送到 Ubuntu 机器时,它的工作方式与我直接在机器上使用它时不同。我更改了密码,现在可以使用了。

【讨论】:

以上是关于我的应用程序的 MySQL 访问被拒绝,但其他人工作正常的主要内容,如果未能解决你的问题,请参考以下文章

用户“root”的访问被拒绝。 PHP/MYSQL/XAMPP

HttpListener“访问被拒绝”,尝试将 url 添加到 ACL

Spring Security 访问被拒绝角色或其他啥?

拒绝用户访问(NodeJS 和 MySQL)

尽管已设置密码并在连接 uri 中输入密码,但用户 root@localhost 的 mysql 访问被拒绝(使用密码:否)

使用 MySQL 和 JPA 提供 403 访问被拒绝的 Spring 自定义安全性