【问题标题】:Error Code: 1044. Access denied for user 'root'@'%' to database 'xxxxxxxABC'错误代码:1044。用户 'root'@'%' 拒绝访问数据库 'xxxxxxxABC'
【发布时间】:2016-02-22 10:47:39
【问题描述】:

我想在 Mysql 中创建以下时间表。它显示错误:“错误代码:1044。用户'root'@'%'拒绝访问数据库'xxxxxABC'

CREATE EVENT resetAccount
ON SCHEDULE EVERY 1 HOUR
STARTS CURRENT_TIMESTAMP
DO 
 UPDATE user_master SET AccountNonLocked = 1 WHERE AccountNonLocked = 0  
       and username in 
                    (select username from  user_attempts  where last_modified between          DATE_SUB(now(),INTERVAL 24 HOUR) and DATE_SUB(now(),INTERVAL 23 HOUR)
                    );

我检查了之前的 stackoverflow cmets 中提到的所有可能的解决方案。 我还检查了用户的 PRIVILEGES 并运行以下命令。 "SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;"

它显示以下输出 enter image description here

我还运行“SELECT USER(),CURRENT_USER();” 输出: enter image description here

现在,为什么我收到此错误,因为用户拥有所有权限。

【问题讨论】:

  • 你使用的是什么操作系统?
  • 你的网络服务器是什么? WAMP 或 IIS 还是其他?
  • 使用用户名'root'和空密码,看看它是否有效。它应该工作。那我给你正确答案。这基本上是一个权限问题。
  • 我们使用的用户名只有 root。但似乎在“用户和权限”的 MySQL 工作台中,密码是必填字段。因为我从归档中删除了密码,然后单击“应用”。但默认密码会自动出现在该字段中。

标签: mysql events triggers scheduled-tasks


【解决方案1】:

尝试执行这个:

echo "SET PASSWORD FOR root@localhost=PASSWORD('password');" > /var/lib/mysql/rootpwd.sql
service mysql restart
rm -f /var/lib/mysql/rootpwd.sql

或尝试授予权限

UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
GRANT ALL ON *.* TO 'root'@'localhost';

【讨论】:

  • 感谢您的信息。因为我没有使用 cmd 来执行查询。我正在使用 MySQL Workbench 6.0 CE 来执行查询。我已经尝试在菜单栏中的查询选项中重新连接到服务器。
  • 我运行您的查询“更新 mysql........”,因为它显示“错误代码:1045。用户 'root'@'%' 的访问被拒绝(使用密码:是)"..!
  • 请检查我附上的第一张和第二张图片,其中所有特权都在那里..! currentUser() 和 User() 不同,这可能是错误的情况?你觉得呢?
  • 现在它对我来说工作正常..!我重新启动主 MYSQL 服务器并将密码从空白更改为再次 root ..!
  • 对于 Docker 中的 MySQL,它将是 GRANT ALL ON *.* TO 'root'@'%';
猜你喜欢
  • 1970-01-01
  • 2015-09-03
  • 1970-01-01
  • 2011-06-17
  • 2021-06-01
  • 1970-01-01
  • 2020-05-09
  • 2012-02-08
  • 2015-07-18
相关资源
最近更新 更多