通常你可以用以下方法啟動mysqld伺服器:
? 直接調用mysqld。該方法適合任何平台。
? 作為Windows服務運行MySQL伺服器。可以在支援服務的Windows版本(例如NT、2000、XP和2003)上實現。可以將服務設定為在Windows啟動時自動啟動伺服器,或根據需要啟動的手動服務。相關說明參見2.3.12節,“以Windows服務方式啟動MySQL”。
? 調用mysqld_safe,可以為mysqld確定正確的選項然後使用這些選項來運行。該指令碼適用於基於BSD Unix的系統。請參見5.1.3節,“mysqld_safe:MySQL伺服器啟動指令碼”。
? 調用mysql.server。該指令碼主要用於使用系統V-style運行目錄的系統的啟動和關閉,它通常安裝到mysql下。mysql.server指令碼調用mysqld_safe來啟動伺服器。請參見5.1.4節,“mysql.server:MySQL伺服器啟動指令碼”。
? 你可以在Mac OS X上安裝一個單獨的MySQL Startup Item安裝包來使系統啟動時自動啟動MySQL。Startup Item調用mysql.server來啟動伺服器。詳細介紹參見2.5節,“在Mac OS X上安裝MySQL”。
mysql.server和mysqld_safe指令碼和Mac OS X Startup Item可以用來手動啟動伺服器,或自動啟動系統。mysql.server和Startup Item還可以用來停止伺服器。
mysql.server指令碼可以被用來啟動或停止伺服器,通過用start或stop參數調用它:
shell>mysql.server start
shell>mysql.server stop
在mysql.server啟動伺服器之前,它把目錄改變到MySQL安裝目錄,然後調用safe_mysqld。如果你想要作為一些特定的使用者運行伺服器,在/etc/my.cnf選項檔案的[mysqld]組增加相應user選項,如本節後面所示。(如果你有在一個非標準的地點安裝的二進位分發版,你可能需要編輯mysql.server。修改它,運行safe_mysqld前,cd到正確的目錄。注意如果你修改mysql.server,那麼某個時候升級MySQL時,你的修改版本將被覆蓋,因此你應該做一個你可重新安裝的編輯過的版本的拷貝)。
mysql.server stop通過向伺服器發出一個訊號停止它。你可手動執行mysqladmin shutdown關閉伺服器。
要想在伺服器上自動啟動和停止MySQL,應在“/etc/rc *檔案中適當的地方增加啟動、停止命令。
如果你使用Linux伺服器RPM安裝軟體包(MySQL-server-VERSION.rpm),mysql.server指令碼安裝在/etc/init.d目錄中,名為MySQL。你不需要手動安裝它。關於Linux RPM軟體包的詳細資料參見2.4節,“在Linux下安裝MySQL”。
一些供應商提供的RPM軟體包安裝的啟動指令碼名字不同,例如mysqld。
如果從不自動安裝mysql.server的源碼分發版或二進位分發版格式來安裝MySQL,可以手動安裝它。可以在MySQL安裝目錄下或MySQL源碼樹的support-files目錄中找到指令碼。
要想手動安裝mysql.server,用名稱mysql將它複製到/etc/init.d目錄,然後將它變為可執行檔。只需要將位置更改為mysql.serveris所在並執行這些命令的相應目錄:
shell>cp mysql.server /etc/init.d/mysql
shell>chmod +x /etc/init.d/mysql
舊的Red Hat系統使用/etc/rc.d/init.d目錄,不使用/etc/init.d。相應地調節前面的命令。也可以首先建立指向/etc/rc.d/init.d的符號串連/etc/init.d:
shell>cd /etc
shell>ln -s rc.d/init.d .
安裝指令碼後,用來啟用它以便在系統啟動時運行所需要的命令取決於你的作業系統。在Linux中,你可以使用chkconfig:
shell>chkconfig --addMySQL
在一些Linux系統中,還需要下面的命令來完全啟用MySQL指令碼:
shell>chkconfig --level 345MySQL on
在FreeBSD中,啟動指令碼通常應當位於/usr/local/etc/rc.d/。手冊的rc(8)頁內說明只有該目錄指令碼的基本名匹配*.shshell檔案名稱模式,指令碼才會執行。目錄內的其它檔案或目錄將被忽略掉。換句話說,在FreeBSD中,應當將mysql.server指令碼安裝為/usr/local/etc/rc.d/mysql.server.sh以便自動啟動。
前面設定的另一種情況是,一些作業系統啟動時也使用/etc/rc.local或/etc/init.d/boot.local來啟動其它服務。要想使用該方法啟動MySQL,你可以在相應開機檔案後面追加一條命令:
/bin/sh -c 'cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql &'
對於其它系統,查閱作業系統的文檔來查看安裝啟動指令碼的方法。
你也可以在一個全域“/etc/my.cnf”檔案中增加mysql.server的選項。一個典型的“/etc/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指令碼使用下列變數:basedir、datadir和pid-file。定義後,必須將它們放到選項檔案中,不能放到命令列。mysql.server只識別start和stop命令列參數。
下面的表顯示了伺服器和每個啟動指令碼從選項檔案讀取哪個選項組:
指令碼 |
選項組 |
mysqld |
[mysqld],[server],[mysqld-major-version] |
mysql.server |
[mysqld],[mysql.server],[server] |
mysqld_safe |
[mysqld],[server],[mysqld_safe] |
[mysqld-major-version]意味著名為[mysqld-5.0]的組,[mysqld-5.1]用於版本為5.0.x、5.1.x等的伺服器。該特性可以用來指定只被給定發布系列的伺服器讀取的選項。
為了向後相容,mysql.server還讀取[mysql_server]組,mysqld_safe還讀取[safe_mysqld]組。然而,當使用MySQL 5.1時,你應當更新選項檔案,使用[mysql.server]和[mysqld_safe]組。
參見4.3.2節,“使用選項檔案”。