在 Windows 上,您可以使用一般使用者帳戶,將伺服器作為 Windows 服務執行。
在 Linux 上,對於使用 MySQL 儲存庫或 RPM 套件執行的安裝,MySQL 伺服器 mysqld 應由本機 mysql
作業系統使用者啟動。MySQL 儲存庫中包含的初始化指令碼不支援由其他作業系統使用者啟動。
在 Unix 上 (或對於使用 tar.gz
套件執行的 Linux 安裝),MySQL 伺服器 mysqld 可以由任何使用者啟動和執行。但是,為了安全性考量,您應該避免以 Unix root
使用者身分執行伺服器。若要變更 mysqld 以一般非特權 Unix 使用者 user_name
身分執行,您必須執行下列動作:
如果伺服器正在執行,請停止伺服器 (使用 mysqladmin shutdown)。
變更資料庫目錄和檔案,以便
user_name
具有在其中讀取和寫入檔案的權限 (您可能需要以 Unixroot
使用者身分執行此動作)$> chown -R user_name /path/to/mysql/datadir
如果您不執行此動作,伺服器將無法在以
user_name
身分執行時存取資料庫或資料表。如果 MySQL 資料目錄中的目錄或檔案是符號連結,
chown -R
可能不會為您追蹤符號連結。如果沒有,您也必須追蹤這些連結並變更它們指向的目錄和檔案。以使用者
user_name
身分啟動伺服器。另一個替代方案是以 Unixroot
使用者身分啟動 mysqld,並使用--user=
選項。mysqld 啟動,然後在接受任何連線之前切換為以 Unix 使用者user_name
user_name
身分執行。若要在系統啟動時自動以指定的使用者身分啟動伺服器,請將
user
選項新增至/etc/my.cnf
選項檔案的[mysqld]
群組,或伺服器資料目錄中的my.cnf
選項檔案。例如:[mysqld] user=user_name
如果您的 Unix 機器本身沒有安全防護,您應該在授權表中為 MySQL root
帳戶設定密碼。否則,該機器上任何具有登入帳戶的使用者都可以執行 mysql 用戶端,並使用 --user=root
選項來執行任何操作。(無論如何,為 MySQL 帳戶設定密碼都是一個好主意,尤其是在伺服器主機上存在其他登入帳戶時)。請參閱第 2.9.4 節,「保護初始 MySQL 帳戶」。