Ubuntu 16.04 を使用した MySQL ユーザー 'root' のアクセスが拒否されました
Ubuntu 16.04 上の Web サーバーから MySQL データベースに接続しようとしたとき、ユーザーは次のエラーに遭遇する可能性があります:
SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'
この問題は、MySQL 5.7 ではデフォルトの認証メカニズムが変更され、昇格された権限なしでは root ユーザーにアクセスできなくなったために発生します。
解決策:
このエラーを解決するには、ユーザーは root ユーザーを使用する代わりに、必要な権限を持つ新しい MySQL ユーザーを作成する必要があります。次の手順はプロセスの概要です:
sudo mysql -u root -p
プロンプトが表示されたら root パスワードを入力します。
CREATE USER new_user@localhost IDENTIFIED BY 'new_password';
「new_user」を目的のユーザー名に置き換え、「new_password」を強力なパスワードに置き換えます。
GRANT ALL PRIVILEGES ON *.* TO new_user@localhost;
これにより、新しいユーザーにすべてのデータベースとテーブルへの完全なアクセス権が付与されます。
新しく作成されたユーザー認証情報を使用するように、提供された質問の PHP コードを変更し、「root」を「new_user」に、「root」を「new_password」に置き換えます。
FLUSH PRIVILEGES;
これにより、行われた変更で権限テーブルが更新されます。
EXIT;
これらの手順に従うことで、ユーザーは「アクセスが拒否されました」エラーが発生することなく、Ubuntu 16.04 上の Web サーバーから MySQL データベースに接続できます。
以上がUbuntu 16.04 で MySQL ユーザー「root」に対して「アクセスが拒否されました」と表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。