在 Unix 和類 Unix 系統上的 MySQL 發行版本包含一個名為 mysql.server 的腳本,它使用 mysqld_safe 啟動 MySQL 伺服器。它可以用於使用 System V 風格執行目錄來啟動和停止系統服務的系統,例如 Linux 和 Solaris。它也由 macOS 的 MySQL 啟動項目使用。
mysql.server 是 MySQL 原始碼樹中使用的腳本名稱。安裝的名稱可能不同 (例如,mysqld 或 mysql)。在以下討論中,請根據您的系統適當調整名稱 mysql.server。
對於某些 Linux 平台,從 RPM 或 Debian 套件安裝 MySQL 包含 systemd 支援,用於管理 MySQL 伺服器的啟動和關閉。在這些平台上,不安裝 mysql.server 和 mysqld_safe,因為它們是不必要的。如需更多資訊,請參閱第 2.5.9 節,「使用 systemd 管理 MySQL 伺服器」。
若要使用 mysql.server 腳本手動啟動或停止伺服器,請從命令列使用 start
或 stop
引數叫用它
mysql.server start
mysql.server stop
mysql.server 會將位置變更為 MySQL 安裝目錄,然後叫用 mysqld_safe。若要以特定使用者身分執行伺服器,請將適當的 user
選項新增至全域 /etc/my.cnf
選項檔案的 [mysqld]
群組,如本節稍後所示。(如果您在非標準位置安裝了 MySQL 二進位發行版本,您可能必須編輯 mysql.server。在執行 mysqld_safe 之前,請修改它以將位置變更為適當的目錄。如果您這樣做,如果您將來升級 MySQL,您修改後的 mysql.server 版本可能會被覆寫;請製作您編輯版本的副本,以便您可以重新安裝它。)
mysql.server stop 會傳送訊號來停止伺服器。您也可以透過執行 mysqladmin shutdown 手動停止伺服器。
若要在您的伺服器上自動啟動和停止 MySQL,您必須將啟動和停止命令新增至您的 /etc/rc*
檔案中的適當位置
如果您使用 Linux 伺服器 RPM 套件 (
MySQL-server-
),或原生 Linux 套件安裝,則 mysql.server 腳本可能會安裝在VERSION
.rpm/etc/init.d
目錄中,名稱為mysqld
或mysql
。如需 Linux RPM 套件的詳細資訊,請參閱第 2.5.4 節,「使用 Oracle 的 RPM 套件在 Linux 上安裝 MySQL」。如果您從原始碼發行版本安裝 MySQL,或使用不會自動安裝 mysql.server 的二進位發行版本格式安裝 MySQL,您可以手動安裝該腳本。它可以在 MySQL 安裝目錄或 MySQL 原始碼樹下的
support-files
目錄中找到。將腳本複製到/etc/init.d
目錄中,名稱為 mysql,並使其可執行cp mysql.server /etc/init.d/mysql chmod +x /etc/init.d/mysql
安裝腳本後,在系統啟動時啟用腳本執行的命令取決於您的作業系統。在 Linux 上,您可以使用 chkconfig
chkconfig --add mysql
在某些 Linux 系統上,似乎也需要下列命令才能完全啟用 mysql 腳本
chkconfig --level 345 mysql on
在 FreeBSD 上,啟動腳本通常應放在
/usr/local/etc/rc.d/
中。將mysql.server
腳本安裝為/usr/local/etc/rc.d/mysql.server.sh
以啟用自動啟動。rc(8)
手冊頁指出,此目錄中的腳本僅在其基本名稱符合*.sh
shell 檔案名稱模式時才會執行。目錄中存在的任何其他檔案或目錄都會被靜默忽略。作為先前設定的替代方案,某些作業系統也會使用
/etc/rc.local
或/etc/init.d/boot.local
在啟動時啟動其他服務。若要使用此方法啟動 MySQL,請將如下列的命令附加到適當的啟動檔案中/bin/sh -c 'cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql &'
對於其他系統,請查閱您的作業系統文件,以了解如何安裝啟動腳本。
mysql.server 從選項檔案的 [mysql.server]
和 [mysqld]
區段讀取選項。為了向後相容,它也會讀取 [mysql_server]
區段,但為了保持最新,您應該將此類區段重新命名為 [mysql.server]
。
您可以在全域 /etc/my.cnf
檔案中為 mysql.server 新增選項。典型的 my.cnf
檔案可能如下所示
[mysqld]
datadir=/usr/local/mysql/var
socket=/var/tmp/mysql.sock
port=3306
user=mysql
[mysql.server]
basedir=/usr/local/mysql
mysql.server 腳本支援下表顯示的選項。如果指定,它們必須放在選項檔案中,而不是在命令列中。mysql.server 僅支援 start
和 stop
作為命令列參數。
表 6.8 mysql.server 選項檔案選項
選項名稱 | 說明 | 類型 |
---|---|---|
basedir |
MySQL 安裝目錄的路徑 | 目錄名稱 |
datadir |
MySQL 資料目錄的路徑 | 目錄名稱 |
pid-file |
伺服器應該在其中寫入其程序 ID 的檔案 | 檔案名稱 |
service-startup-timeout |
等待伺服器啟動的時間長度 | 整數 |
MySQL 安裝目錄的路徑。
MySQL 資料目錄的路徑。
伺服器應該在其中寫入其程序 ID 的檔案的路徑名稱。伺服器會在資料目錄中建立該檔案,除非給定絕對路徑名稱以指定不同的目錄。
如果未給定此選項,mysql.server 會使用預設值
。mysqld_safe 接收的 PID 檔案值會覆寫在host_name
.pid[mysqld_safe]
選項檔案群組中指定的任何值。因為 mysql.server 會讀取[mysqld]
選項檔案群組,但不會讀取[mysqld_safe]
群組,所以您可以確保 mysqld_safe 從 mysql.server 叫用時取得與手動叫用時相同的值,方法是在[mysqld_safe]
和[mysqld]
群組中都放入相同的pid-file
設定。service-startup-timeout=
seconds
等待伺服器啟動確認的秒數。如果伺服器未在此時間內啟動,mysql.server 將會以錯誤訊息結束。預設值為 900。值為 0 表示完全不等待啟動。負值表示永遠等待(無逾時)。