错误 1045 (28000) 用户 root localhost 的访问被拒绝(已解决)

已发表: 2023-03-14

“Error 1045 (28000) access denied for user root localhost”是尝试通过 WordPress CMS 访问 MySQL 时经常遇到的错误。 但是,此错误也可能发生在其他情况下。

您遇到的错误表明“root”用户不具备从本地主机访问数据库所需的权限。 此问题背后的原因可能有多种,包括密码不正确、用户名不正确或授予用户的权限不足。

以下是您可以采取的一些步骤来解决此错误

1.检查用户名和密码

确保您使用的是正确的用户名和密码。 用户名应为“root”,密码应为您在安装过程中设置的密码。

如果您使用的是 WordPress,则必须检查wp-config.php文件。 该文件可以在 WordPress 的主文件夹中找到。

wp-config.php

打开文件并尝试对其进行编辑(Visual Studio Code)后,您将看到以下屏幕:

编辑数据库的 wp-config.php 用户名和密码

检查 DB_USER 和 DB_PASSWORD 是否有正确的值

/** Database username */ define( 'DB_USER', 'root' );
 /** Database password */ define( 'DB_PASSWORD', 'root' );

如果您不知道哪个是数据库的用户名和密码,请访问 cPanel > 数据库 > Mysql 并检查它。

如何使用cpanel访问mysql数据库

要更改 WordPress 数据库的密码,请按照教程:在 PHPMyAdmin 中更改 WordPress 密码

2.检查用户是否有需要的权限

检查用户“root”是否具有访问数据库的必要权限。

第 1 步:首先,您必须打开终端并输入 ssh [email protected]

 ssh [email protected]

Step2:登录成功后记下这条命令

mysql -uroot -p

第 3 步:添加密码后,您可以从 mysql 提示符开始添加命令

Step4:可以使用以下命令查看权限:

 SHOW GRANTS FOR 'root'@'localhost';

这将向您显示用户“root”对“localhost”服务器的权限列表。 如果用户没有必要的权限,您可以使用以下命令授予他们:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password';

注意:将“密码”替换为您要使用的密码。

要使用 phpMyAdmin 检查用户是否具有所需的权限,请执行以下步骤:

  1. 登录到您的 phpMyAdmin 帐户。
  2. 单击“用户帐户”选项卡。
  3. 选择用户根(或您要更改密码的用户)
  4. 单击编辑权限链接
  5. 在这里您可以看到已授予用户的权限列表。
  6. 确保用户已被授予访问数据库所需的权限。
  7. 如果用户没有所需的权限,您可以通过选中相关复选框并单击“开始”按钮来授予他们。
  8. 授予所需权限后,再次尝试访问数据库以查看问题是否已解决。
phpmyadmin 编辑权限链接

应检查突出显示区域中的设置:

phpmyadmin 用户权限

注意:如果您无法通过 phpMyAdmin 授予必要的权限,您可能需要访问 MySQL 命令行界面来授予权限。

3.查看MySQL服务器状态

确保 MySQL 服务器正在运行。 您可以在登录服务器 shell 后运行以下命令来检查服务器状态:

 systemctl status mysql

如果服务器未运行,请使用以下命令启动它:

 systemctl start mysql

要检查 cPanel 托管上的 Mysql 状态,您必须登录到托管仪表板。 另一种方法是直接联系您的托管服务提供商。

4、检查MySQL服务器是否监听了正确的端口

确保 MySQL 服务器正在侦听正确的端口。 MySQL 的默认端口是3306

要检查 MySQL 服务器是否正在监听正确的端口,您可以按照以下步骤操作:

1. 在安装了 MySQL 的服务器上打开终端或命令提示符。

2.使用命令行客户端连接到MySQL服务器。 您可以使用以下命令,将usernamepassword替换为您的实际 MySQL 凭据:

 mysql -u username -p

3. 连接到 MySQL 服务器后,键入以下命令以显示 MySQL 服务器正在侦听的端口号:

SHOW VARIABLES LIKE 'port';

此命令将显示 MySQL 服务器正在侦听的端口号。 默认情况下,MySQL 侦听端口 3306。

您也可以在 MySQL 配置文件中查看端口号。

配置文件通常命名为my.cnfmy.ini ,它位于 MySQL 安装目录中。

找到MySQL的安装目录,可以按照以下步骤进行:

1. 在安装了 MySQL 的服务器上打开终端或命令提示符。

2. 键入以下命令检查是否安装了 MySQL:

which mysql

如果安装了 MySQL,此命令将显示mysql可执行文件的路径,否则您将收到一条错误消息。

如果安装了MySQL,可以再次使用which命令找到安装目录。 键入以下命令,将/path/to/mysql替换为mysql可执行文件的路径:

 which mysql | xargs readlink -f | sed "s|bin/mysql$||"

此命令将显示 MySQL 安装目录。 您可以使用此目录来定位 MySQL 配置文件( my.cnfmy.ini )以及其他 MySQL 文件和目录。

或者,如果您可以访问 MySQL 客户端,也可以执行以下查询来查找 MySQL 安装目录:

 SELECT @@basedir;

这将显示 MySQL 安装目录。

您还可以检查 MySQL 配置文件以验证 MySQL 配置为侦听的端口号。 配置文件通常命名为my.cnfmy.ini ,它位于 MySQL 安装目录中。

my.cnf 和 sql 端口

使用文本编辑器打开配置文件并搜索端口参数。 此参数的值指定 MySQL 配置为侦听的端口号。

如果 MySQL 服务器没有侦听正确的端口,您可以更改配置文件中的端口参数并重新启动 MySQL 服务器以应用更改。

如果更改了端口,不要忘记重启 Mysql 服务:

 service mysql restart

5.重置root密码

如果上述步骤均无效,您可以尝试重置 root 密码。 您可以按照本文中的步骤执行此操作:

https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

注意:此方法要求您有权访问 MySQL 配置文件并能够重新启动 MySQL 服务器。

您可能有兴趣阅读:

如何修复 WordPress 上的“安装失败:无法创建目录”错误

如何修复 WordPress 卡在维护模式(已解决)

如何修复“更新失败。 响应不是有效的 JSON 响应”

如何修复“建立数据库连接时出错”? – 2023