首頁 >資料庫 >mysql教程 >為什麼我的 MySQL `mysql.user` 表在 macOS 上沒有 `password` 欄位?

為什麼我的 MySQL `mysql.user` 表在 macOS 上沒有 `password` 欄位?

Patricia Arquette
Patricia Arquette原創
2024-11-29 10:20:10738瀏覽

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

OSX 上的MySQL 使用者表密碼列差異

嘗試在macOS 上更改MySQL root 密碼時,使用者可能會遇到錯誤,指示“mysql.user”表中不存在“password”列。這可能會令人困惑,因為「密碼」欄位通常與在 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. 如果'mysql.user' 表中不存在'authentication_string' 列,使用以下命令建立它:

    ALTER TABLE mysql.user ADD authentication_string TEXT;
  4. 更新SQLSQL命令將“authentication_string”列設定為新密碼來更改root使用者的密碼:

    UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE user='root';
  5. 刷新 MySQL 權限以應用變更:

    FLUSH PRIVILEGES;
  6. 退出 MySQL client:

    exit

您現在應該可以使用新的 root 密碼登入 MySQL。此變更可讓您增強 MySQL 安裝的安全性,同時仍保留使用者密碼管理功能。

以上是為什麼我的 MySQL `mysql.user` 表在 macOS 上沒有 `password` 欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn