ホームページ >データベース >mysql チュートリアル >macOS では MySQL の「mysql.user」テーブルに「password」列がないのはなぜですか?

macOS では MySQL の「mysql.user」テーブルに「password」列がないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-29 10:20:10737ブラウズ

Why Doesn't My MySQL `mysql.user` Table Have a `password` Column on macOS?

OSX での MySQL ユーザー テーブルのパスワード列の不一致

macOS で MySQL root パスワードを変更しようとすると、次のことを示すエラーが発生する場合があります。 「password」列は「mysql.user」テーブルに存在しません。通常、「パスワード」フィールドは MySQL データベースへのユーザー パスワードの保存に関連付けられているため、これは混乱を招く可能性があります。

この不一致の理由は、MySQL 5.7 では、「パスワード」列が「」フィールドから削除されたためです。 mysql.user' テーブルを削除し、'authentication_string' 列に置き換えます。この変更は、より安全な新しいハッシュ アルゴリズムを使用してパスワードを保存することでセキュリティを強化するために行われました。

MySQL 5.7 を搭載した macOS で MySQL root パスワードを変更するには、次の手順に従ってください:

  1. ターミナル ウィンドウを開き、次のコマンドを入力して、「mysql」コマンドラインを使用して MySQL に接続します。 client:

    mysql -uroot -p
  2. プロンプトが表示されたら、現在の MySQL root パスワードを入力します。
  3. 「authentication_string」列が「mysql.user」テーブルに存在しない場合は、以下を使用して作成しますコマンド:

    ALTER TABLE mysql.user ADD authentication_string TEXT;
  4. 次のコマンドを使用して「authentication_string」列を新しいパスワードに設定して、MySQL root ユーザーのパスワードを更新します:

    UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE user='root';
  5. MySQL 権限をフラッシュして、変更点:

    FLUSH PRIVILEGES;
  6. MySQL クライアントを終了します:

    exit

これで、新しいルートを使用して MySQL にログインできるようになります。パスワード。この変更により、ユーザー パスワード管理の機能を維持しながら、MySQL インストールのセキュリティを強化できます。

以上がmacOS では MySQL の「mysql.user」テーブルに「password」列がないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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