「SQLSTATE[HY000] [1698] Access Denied for user '」が発生しました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 中国語 Web サイトの他の関連記事を参照してください。