文件首頁
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.server — MySQL 伺服器啟動腳本

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

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

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 原始碼樹下的 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] 群組,因此您可以確保從 mysql.server 呼叫時,mysqld_safe 獲得的值與手動呼叫時相同,方法是在 [mysqld_safe][mysqld] 群組中都放置相同的 pid-file 設定。

  • service-startup-timeout=seconds

    等待確認伺服器啟動的秒數。如果伺服器未在此時間內啟動,mysql.server 將以錯誤退出。預設值為 900。值為 0 表示根本不等待啟動。負值表示永遠等待(沒有逾時)。