MySQL ログイン中のエラー 1698 の処理
ユーザーに エラー 1698 (28000): アクセスが拒否されました (ユーザー 'root'@) が発生する可能性があります'localhost' を使用して MySQL データベースにログインしようとすると、ルートユーザー。このエラーは、MySQL がデフォルトで認証に Unix auth_socket プラグインを使用する Ubuntu などのシステムでよく発生します。
背景: auth_socket プラグインは、認証にシステム ユーザーの資格情報に依存します。 mysql.user テーブルをクエリすると、root ユーザーがこのプラグインに登録されていることを確認できます:
SELECT User, Host, plugin FROM mysql.user;
考えられる解決策:
オプション 1 : mysql_native_password を使用するように root ユーザーを構成しますプラグイン
この方法には、より伝統的な mysql_native_password プラグインを使用するように root ユーザーを設定することが含まれます:
UPDATE user SET plugin='mysql_native_password' WHERE User='root'; FLUSH PRIVILEGES; sudo service mysql restart
オプション 2: 新しいデータベース ユーザーを作成する (推奨)
別の方法は、システムのユーザー名を使用して新しいデータベース ユーザーを作成することです。これにより、より管理しやすく安全なオプションが提供されます:
CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY 'YOUR_PASSWD'; GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost'; UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER'; FLUSH PRIVILEGES; sudo service mysql restart
オプション 2 では、システム ユーザー名を使用して MySQL に接続することに注意してください:
mysql -u YOUR_SYSTEM_USER
追加の考慮事項:
以上がMySQL エラー 1698 (アクセス拒否) が発生するのはなぜですか? どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。