MySQL 安裝程序涉及初始化資料目錄,包括定義 MySQL 帳戶的 mysql
系統結構描述中的授權表。如需詳細資訊,請參閱第 2.9.1 節「初始化資料目錄」。
本節說明如何將密碼指派給在 MySQL 安裝程序期間建立的初始 root
帳戶 (如果您尚未執行此操作)。
執行本節所述程序的替代方法
在 Windows 上,您可以使用 MySQL Configurator 在安裝期間執行此程序 (請參閱第 2.3.2 節「組態:使用 MySQL Configurator」)。
在所有平台上,MySQL 發行版都包含 mysql_secure_installation,這是一個命令列公用程式,可自動執行許多保護 MySQL 安裝安全性的程序。
在所有平台上,MySQL Workbench 都可用,並提供管理使用者帳戶的功能 (請參閱第 33 章《MySQL Workbench》)。
在以下情況下,密碼可能已指派給初始帳戶
在 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 手動或使用在安裝作業期間未讓您選擇指定密碼的安裝程式初始化,就會發生這種情況。因為密碼存在,所以您必須使用它來連線至伺服器。但是,由於密碼已過期,您無法將該帳戶用於選擇新密碼以外的任何目的,直到您選擇新密碼為止。如果您不知道初始隨機密碼,請查看伺服器錯誤記錄檔。
使用密碼以
root
身分連線至伺服器$> mysql -u root -p Enter password: (enter the random root password here)
選擇新密碼以取代隨機密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
如果
root
帳戶存在但沒有密碼,請在沒有密碼的情況下以root
身分連線至伺服器,然後指派密碼。如果您使用 mysqld --initialize-insecure 初始化資料目錄,就會發生這種情況。在沒有密碼的情況下以
root
身分連線至伺服器$> mysql -u root --skip-password
指派密碼
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 節,「新增帳戶、指派權限和刪除帳戶」。