文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  保護初始 MySQL 帳戶安全

2.9.4 保護初始 MySQL 帳戶安全

MySQL 安裝過程涉及初始化資料目錄,包括 mysql 系統綱要中的授權表,這些表定義了 MySQL 帳戶。有關詳細資訊,請參閱第 2.9.1 節, 「初始化資料目錄」

本節描述如何為 MySQL 安裝過程中建立的初始 root 帳戶指派密碼,如果您尚未執行此操作。

注意

執行本節所述流程的替代方法

在以下情況下,可能已經為初始帳戶指派密碼

  • 在 Windows 上,使用 MSI 安裝程式和 MySQL Configurator 執行的安裝會讓您選擇指派密碼。

  • 使用 macOS 安裝程式進行安裝會產生初始隨機密碼,安裝程式會在對話方塊中向使用者顯示此密碼。

  • 使用 RPM 套件進行安裝會產生初始隨機密碼,該密碼會寫入伺服器錯誤記錄檔。

  • 使用 Debian 套件進行安裝會讓您選擇指派密碼。

  • 對於使用 mysqld --initialize 手動執行的資料目錄初始化,mysqld 會產生初始隨機密碼,將其標記為已過期,並將其寫入伺服器錯誤記錄檔。請參閱第 2.9.1 節,「初始化資料目錄」

mysql.user 授權表定義了初始 MySQL 使用者帳戶及其存取權限。安裝 MySQL 只會建立一個具有所有權限並且可以執行任何操作的 'root'@'localhost' 超級使用者帳戶。如果 root 帳戶的密碼為空,則您的 MySQL 安裝將不受保護:任何人都可以在沒有密碼的情況下root 身分連線到 MySQL 伺服器,並被授予所有權限。

'root'@'localhost' 帳戶在 mysql.proxies_priv 表格中也有一列,可啟用授予 PROXY 權限給 ''@'',也就是給所有使用者和所有主機。這使 root 可以設定 Proxy 使用者,以及委派其他帳戶設定 Proxy 使用者的權限。請參閱第 8.2.19 節,「Proxy 使用者」

若要為初始 MySQL root 帳戶指派密碼,請使用以下程序。在範例中,將 root-password 替換為您要使用的密碼。

如果伺服器未執行,請啟動伺服器。如需指示,請參閱第 2.9.2 節,「啟動伺服器」

初始 root 帳戶可能有也可能沒有密碼。請選擇以下適用的程序

  • 如果 root 帳戶存在,且具有已過期的初始隨機密碼,請使用該密碼以 root 身分連線到伺服器,然後選擇新的密碼。如果資料目錄是使用 mysqld --initialize 手動或使用在安裝操作期間不讓您指定密碼的安裝程式進行初始化的,則屬於這種情況。由於密碼存在,您必須使用該密碼才能連線到伺服器。但由於密碼已過期,除非您選擇新的密碼,否則您無法將該帳戶用於選擇新密碼以外的任何用途。

    1. 如果您不知道初始隨機密碼,請查看伺服器錯誤記錄檔。

    2. 使用密碼以 root 身分連線到伺服器

      $> mysql -u root -p
      Enter password: (enter the random root password here)
    3. 選擇新的密碼以取代隨機密碼

      mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
  • 如果 root 帳戶存在但沒有密碼,請在沒有密碼的情況下以 root 身分連線到伺服器,然後指派密碼。如果您使用 mysqld --initialize-insecure 初始化資料目錄,則屬於這種情況。

    1. 在沒有密碼的情況下以 root 身分連線到伺服器

      $> mysql -u root --skip-password
    2. 指派密碼

      mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';

在為 root 帳戶設定密碼後,每次使用該帳戶連線到伺服器時,都必須提供該密碼。例如,要使用 mysql 用戶端連線到伺服器,請使用以下命令

$> mysql -u root -p
Enter password: (enter root password here)

要使用 mysqladmin 關閉伺服器,請使用以下命令

$> mysqladmin -u root -p shutdown
Enter password: (enter root password here)
注意

有關設定密碼的更多資訊,請參閱第 8.2.14 節,「設定帳戶密碼」。如果您在設定密碼後忘記了 root 密碼,請參閱第 B.3.3.2 節,「如何重設 Root 密碼」

要設定其他帳戶,請參閱第 8.2.8 節,「新增帳戶、指派權限和刪除帳戶」