【问题标题】:Access denied on MySQL databaseMySQL 数据库上的访问被拒绝
【发布时间】:2016-09-07 20:52:40
【问题描述】:

我已将所有权限授予用户名:

GRANT ALL PRIVILEGES ON my_db . * TO  'website_user'@'xx.xx.xx.xx' IDENTIFIED BY 'password'

尝试从xx.xx.xx.xx访问yy.yy.yy.yy中的数据库:

mysqldump -P 3306 -u website_user -ppassword -h yy.yy.yy.yy my_db > test.sql

但仍然出现以下错误:

mysqldump:出现错误:1045:尝试连接时用户“website_user”@“xx.xx.xx.xx”的访问被拒绝(使用密码:YES)

我还检查了防火墙。没有什么可以阻止运行此查询。我做错了什么?

【问题讨论】:

  • flush privileges?
  • 我重新启动了mysql。也试过flush privileges
  • 确保密码没有任何 shell 元字符,例如 $,例如-pfoo$bar 是密码 foo$bar。它是密码foo,后跟一个未定义的shell var $bar
  • @sємsєм 你可以在参数后直接传递密码
  • @apesa:如果是网络级别的问题,那就是“连接被拒绝”。拒绝访问意味着 TCP 握手完成,客户端向服务器发送登录请求,然后返回拒绝访问。

标签: mysql


【解决方案1】:

您是否还运行了以下查询:

FLUSH PRIVILEGES

这是使新权限生效所必需的。

【讨论】:

  • 确实,对使用 DML 操作(INSERT、UPDATE、DELETE)应用的 mysql 权限表的更改在 FLUSH PRIVILEGES(导致 MySQL 重新读取权限表)之前不会生效。但是随着(较新的)授予,撤销。等。语法,更改自动生效,无需单独的 FLUSH PRIVILEGES 语句。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多