文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美國信紙尺寸) - 40.0MB
PDF (A4) - 40.1MB
Man Pages (TGZ) - 258.2KB
Man Pages (Zip) - 365.3KB
Info (Gzip) - 4.0MB
Info (Zip) - 4.0MB


MySQL 9.0 參考手冊  /  ...  /  保護初始 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 節,「新增帳戶、指派權限和刪除帳戶」