遇到「SQLSTATE[HY000] [1698] 使用者」被訪問拒絕設定Ubuntu Web 伺服器後出現root'@'localhost'” 錯誤可能會令人沮喪。雖然資料庫存取似乎可以透過終端機進行訪問,但 PHP 和 phpMyAdmin 中的錯誤仍然存在。了解根本原因對於解決此問題至關重要。
Root 使用者限制
MySQL 5.7 開始引入了對 root 使用者的限制。如果沒有提升的權限,則無法再使用 mysql -u root 直接存取 MySQL。相反,需要 sudo mysql -u root,提示輸入密碼。
此限制擴展到 GUI 和非命令列應用程式。要緩解此問題,請建立一個具有必要權限的新用戶,而不是使用 root 用戶。
PHP 中的實作
在提供的 PHP 程式碼中,登入憑證為硬編碼。若要繞過root 使用者限制,請修改__construct() 方法以合併具有適當權限的新使用者:
<code class="php">public function __construct() { try { $this->conn = new PDO("mysql:host=$this->host;dbname=$this->db", $this->name, $this->pass, self::$settings); } catch (PDOException $e) { echo $e->getMessage(); } }</code>
將$this->name 和$this->pass 替換為新建立的用戶的憑據。確保使用者擁有存取資料庫所需的權限。
其他資源
有關進一步的見解和故障排除步驟,請參閱以下資源:
以上是為什麼我無法在 Ubuntu 中以 root 使用者身分存取我的 MySQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!