MySQL 权限被本地拒绝但可以远程连接

标签 mysql permissions dns mysql-error-1045

我正在尝试通过以下命令(通过 ssh)连接到远程服务器上的 mysql 数据库:

mysql -u me -h mydomain.com -p

但它失败并出现错误 1045 (28000):用户访问被拒绝......错误

同时

mysql -u me -h localhost -p

作品

现在这不仅仅是因为我没有设置权限,因为这个数据库的权限是为 % 或 me 用户的任何主机设置的。

事实证明,我可以使用同一用户从本地计算机正确连接到服务器。即从我的本地机器运行以下命令:

mysql -u me -h mydomain.com -p

所以我的问题是为什么会发生这种情况,我该如何解决?为什么当我使用域名而不是 localhost 时无法从我的服务器连接到我的 mysql 服务器,即使权限设置为接受来自任何主机的连接。

最佳答案

发生这种情况是因为 MySQL 处理权限授予的方式。

当您从远程主机(或通过外部 IP 从本地主机)连接时,它将匹配 me@% 条目(如果没有特定的授予您正在使用的特定主机!)。但是当您通过环回接口(interface)(“本地主机”IP)或套接字连接时,它将使用 me@localhost 授权。所以你必须有两个GRANT PRIVILEGES;一个用于 me@localhost,一个用于 me@%

关于MySQL 权限被本地拒绝但可以远程连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3254365/

相关文章:

php - 如何在同一 php 页面上的其他 php 脚本中使用 php 变量

php - 如何通过 PHP 和 MySQL 在我的网站上使用 Paypal?

javascript - 使用 Permissions API 从 Firefox 中的 <select> onchange 处理程序请求权限

android - API 23中的Android权限正常权限和危险权限列表?

iis - web.config 允许来自特定域的所有用户,但不允许来自其他域的所有用户

grails - Grails 是否有 domain.find-by... 选项 ":select"来像 rails 一样限制列?

java - 发送多行到mysql数据库

unix - chmod 755 用于目录 - 这是否允许每个人删除该文件夹?

ssl - 无法解析我的网站 url net::ERR_NAME_NOT_RESOLVED

php - 查询是否正确,除了第 9 行之外的所有行