ホームページ >データベース >mysql チュートリアル >macOS では MySQL の「mysql.user」テーブルに「password」列がないのはなぜですか?
OSX での MySQL ユーザー テーブルのパスワード列の不一致
macOS で MySQL root パスワードを変更しようとすると、次のことを示すエラーが発生する場合があります。 「password」列は「mysql.user」テーブルに存在しません。通常、「パスワード」フィールドは MySQL データベースへのユーザー パスワードの保存に関連付けられているため、これは混乱を招く可能性があります。
この不一致の理由は、MySQL 5.7 では、「パスワード」列が「」フィールドから削除されたためです。 mysql.user' テーブルを削除し、'authentication_string' 列に置き換えます。この変更は、より安全な新しいハッシュ アルゴリズムを使用してパスワードを保存することでセキュリティを強化するために行われました。
MySQL 5.7 を搭載した macOS で MySQL root パスワードを変更するには、次の手順に従ってください:
ターミナル ウィンドウを開き、次のコマンドを入力して、「mysql」コマンドラインを使用して MySQL に接続します。 client:
mysql -uroot -p
「authentication_string」列が「mysql.user」テーブルに存在しない場合は、以下を使用して作成しますコマンド:
ALTER TABLE mysql.user ADD authentication_string TEXT;
次のコマンドを使用して「authentication_string」列を新しいパスワードに設定して、MySQL root ユーザーのパスワードを更新します:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE user='root';
MySQL 権限をフラッシュして、変更点:
FLUSH PRIVILEGES;
MySQL クライアントを終了します:
exit
これで、新しいルートを使用して MySQL にログインできるようになります。パスワード。この変更により、ユーザー パスワード管理の機能を維持しながら、MySQL インストールのセキュリティを強化できます。
以上がmacOS では MySQL の「mysql.user」テーブルに「password」列がないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。