文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美國信紙) - 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.server — MySQL 伺服器啟動腳本

6.3.3 mysql.server — MySQL 伺服器啟動腳本

在 Unix 和類 Unix 系統上的 MySQL 發行版本包含一個名為 mysql.server 的腳本,它使用 mysqld_safe 啟動 MySQL 伺服器。它可以用於使用 System V 風格執行目錄來啟動和停止系統服務的系統,例如 Linux 和 Solaris。它也由 macOS 的 MySQL 啟動項目使用。

mysql.server 是 MySQL 原始碼樹中使用的腳本名稱。安裝的名稱可能不同 (例如,mysqldmysql)。在以下討論中,請根據您的系統適當調整名稱 mysql.server

注意

對於某些 Linux 平台,從 RPM 或 Debian 套件安裝 MySQL 包含 systemd 支援,用於管理 MySQL 伺服器的啟動和關閉。在這些平台上,不安裝 mysql.servermysqld_safe,因為它們是不必要的。如需更多資訊,請參閱第 2.5.9 節,「使用 systemd 管理 MySQL 伺服器」

若要使用 mysql.server 腳本手動啟動或停止伺服器,請從命令列使用 startstop 引數叫用它

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-VERSION.rpm),或原生 Linux 套件安裝,則 mysql.server 腳本可能會安裝在 /etc/init.d 目錄中,名稱為 mysqldmysql。如需 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 僅支援 startstop 作為命令列參數。

表 6.8 mysql.server 選項檔案選項

選項名稱 說明 類型
basedir MySQL 安裝目錄的路徑 目錄名稱
datadir MySQL 資料目錄的路徑 目錄名稱
pid-file 伺服器應該在其中寫入其程序 ID 的檔案 檔案名稱
service-startup-timeout 等待伺服器啟動的時間長度 整數

  • basedir=dir_name

    MySQL 安裝目錄的路徑。

  • datadir=dir_name

    MySQL 資料目錄的路徑。

  • pid-file=file_name

    伺服器應該在其中寫入其程序 ID 的檔案的路徑名稱。伺服器會在資料目錄中建立該檔案,除非給定絕對路徑名稱以指定不同的目錄。

    如果未給定此選項,mysql.server 會使用預設值 host_name.pidmysqld_safe 接收的 PID 檔案值會覆寫在 [mysqld_safe] 選項檔案群組中指定的任何值。因為 mysql.server 會讀取 [mysqld] 選項檔案群組,但不會讀取 [mysqld_safe] 群組,所以您可以確保 mysqld_safemysql.server 叫用時取得與手動叫用時相同的值,方法是在 [mysqld_safe][mysqld] 群組中都放入相同的 pid-file 設定。

  • service-startup-timeout=seconds

    等待伺服器啟動確認的秒數。如果伺服器未在此時間內啟動,mysql.server 將會以錯誤訊息結束。預設值為 900。值為 0 表示完全不等待啟動。負值表示永遠等待(無逾時)。