錯誤 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