Ubuntu 16.04 の「root」ユーザーのデータベース アクセスが拒否されました
Ubuntu 16.04 で Web サーバーを使用してデータベースにアクセスすると、次のような問題が発生する可能性があります。エラー「SQLSTATE[HY000] [1698] ユーザー 'root'@'localhost' のアクセスが拒否されました。」この問題は、すべての権限を持つ新しいユーザーを作成したにもかかわらず発生します。
MySQL 5.7 のルート ユーザーの制限
このエラーの根本原因は、MySQL 5.7 で導入された変更にあります。これにより、sudo 権限のない「root」ユーザーの使用が制限されます。以前のバージョンでは、ユーザーはコマンド「mysql -u root」を使用して特権を昇格せずに「root」として MySQL にアクセスできました。ただし、MySQL 5.7 では、このアプローチは不可能になりました。
回避策
この問題を解決するには、必要な権限を持つ新しいユーザーを作成し、次を使用する必要があります。 PHP アプリケーションまたは他の非コマンド ライン ツールからデータベース接続を確立するときに、「root」の代わりにそのユーザーを使用します。
PHP コード
PHP コードでは、新しく作成したユーザーの認証情報を使用したユーザー名とパスワード:
<code class="php">protected $name = 'new_user'; protected $pass = 'new_password';</code>
コマンド ラインからの root アクセス
ただし、「root」ユーザーを直接使用することはできません。 GUI または非コマンド ライン アプリケーションの場合でも、sudo:
sudo mysql -u root
を使用してコマンド ラインから「root」として MySQL にアクセスできます。このアプローチは権限を昇格するものであり、必要な場合にのみ使用する必要があることに注意してください。データベース管理専用のユーザーを作成し、セキュリティ上の理由から「root」の代わりにそのユーザーを使用することをお勧めします。
以上がUbuntu 16.04 で「root」として MySQL に接続できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。