拒绝用户“root”@“localhost”访问(使用密码:是)

拒绝用户“root”@“localhost”访问(使用密码:是)

我正在遵循 Moodle 3.0 dev 安装。

在数据库设置过程中出现错误:

Error: Database connection failed

数据库可能已超载或无法正常运行。

网站管理员还应检查数据库详细信息是否已正确指定config.php

Warning: mysqli::mysqli(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) inC:\Apache24\htdocs\moodle\lib\dml\mysqli_native_moodle_database.php on line 79

有人可以告诉我该怎么做才能继续下去。

谢谢

答案1

您必须使用以下命令允许 root 用户远程登录 MySQL 服务器

允许来自本地主机

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*root_user_password' WITH GRANT OPTION 

允许从任何地方

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*root_user_password' WITH GRANT OPTION 

允许来自某些主机XXX

GRANT ALL PRIVILEGES ON *.* TO 'root'@'X.X.X.X' IDENTIFIED BY PASSWORD '*root_user_password' WITH GRANT OPTION 

注意:上述命令必须跟FLUSH PRIVILEGES;在 MySQL 服务上重新启动

答案2

在 Linux 或 DOS 提示符下输入

mysql -u 根 -p

然后,下面的命令将创建一个新的 root 用户 ID,该用户 ID 可以从任何地方登录。它还会删除已创建的 root 用户,以消除出现问题的可能性。警告:这不是生产环境中的最佳解决方案。

CREATE USER 'root'@'%' IDENTIFIED BY 'P@ssw0rd';
grant all privileges on *.* to 'root'@'%' WITH GRANT OPTION;
flush privileges;
drop user 'root'@'localhost';
drop user 'root'@'127.0.0.1';
drop user 'root'@'::1';
flush privileges;

相关内容