ホームページ  >  記事  >  データベース  >  Ubuntu で root ユーザーとして MySQL データベースにアクセスできないのはなぜですか?

Ubuntu で root ユーザーとして MySQL データベースにアクセスできないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-30 00:10:28330ブラウズ

Why Can't I Access My MySQL Database as Root User in Ubuntu?

SQLSTATE[HY000] [1698] Access Denied for 'root' User on localhost

「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 を、新しく作成したユーザーの認証情報に置き換えます。 。ユーザーがデータベースにアクセスするために必要な権限を持っていることを確認してください。

追加リソース

さらに詳しい情報とトラブルシューティング手順については、次のリソースを参照してください。

  • [MySQL エラー コード 1698: ユーザー 'root'@'localhost' のアクセスが拒否されました](https://www.cybertec-postgresql.com/en/mysql-error-1698-access-denied-for- user-rootlocalhost/)

以上がUbuntu で root ユーザーとして MySQL データベースにアクセスできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。