由于MySQL服務器具有多種安裝分發,而且能夠運行在多種操作平臺之上,因此它的啟動與停止的方法也多種多樣。你可以根據實際情況使用其中的一種。在你安裝、升級或者維護系統時,你可能需要多次啟動和終止服務器,你需要了解啟動和終止服務器的方方面面。
直接運行守護程序
1、你可以采用的方法
一般的,你可以有以下幾種選擇啟動MySQL服務器,它們的功能和用法幾乎是相同的,所以一起在這里介紹:
直接使用MySQL守護程序mysqld啟動數據庫系統,尤其是Win32平臺上的分發,這是因為,在Win32平臺上沒有mysql.server等服務器腳本可用。
通過調用safe_mysqld腳本,它接受與mysqld相同的參數,并試圖為mysqld決定正確的選項,然后選擇用那些運行它。
2、腳本或者守護程序的存放位置
對于二進制分發的安裝,mysqld守護程序安裝在MySQL安裝目錄的bin目錄下,或者可在MySQL源代碼分發的libexec目錄下找到,缺省為/usr/local/libexec/。對于rpm分發,mysqld應該位于PATH變量決定的程序搜索路徑中,因此可以直接引用。
safe_mysqld仍舊是一個腳本,并且只存在于Unix平臺的分發中。safe_mysqld腳本安裝在MySQL安裝目錄的bin目錄下,或可在MySQL源代碼分發的scripts目錄下找到。對于rpm分發,該腳本應該位于PATH變量決定的程序搜索路徑中,因此可以直接引用。
3、為什么要使用safe_mysqld腳本
safe_mysqld接受和mysqld同樣的參數,并試圖確定服務器程序和數據庫目錄的位置,然后利用這些位置調用服務器。safe_mysqld將服務器的標準錯誤輸出重定向到數據庫目錄中的錯誤文件中,并以記錄的形式存在。啟動服務器后,safe_mysqld還監控服務器,并在其死機時重新啟動。safe_mysqld通常用于Unix的BSD風格的版本。
如果,你曾經為root或在系統啟動程序中啟動safe_mysqld,其錯誤日志將有root擁有。如果再用非特權的用戶身份調用safe_mysqld,則可能引起“Access Denied”(即,“所有權被拒絕”)的錯誤。此時可以刪除錯誤文件在試一次。
由于safe_mysqld腳本的功能,使用safe_mysqld腳本明顯比直接啟動mysqld守護程序來得有效。
4、啟動服務器的完整過程
對于Unix平臺上的分發,如果你以root或在系統引導期間啟動sqfe_mysqld,出錯日志由root擁有,這可能在你以后試圖用一個非特權用戶調用safe_mysqld時將導致“permission denied”(權限拒絕)錯誤,刪除出錯日志再試一下。因此建議你在啟動服務器前,首先切換到一個專門的用戶mysql。
具體方法如下:
Unix平臺
$ su mysql
$ safe_mysql & (或者 mysqld & ,不推薦)
Win32平臺
C: mysqlbin>mysqld –standalone
或者C: mysqlbin>mysqld-nt –standalone
如果你使用mysqld并且沒有把mysql安裝在標準的位置,通常需要提供—basedir選項你的數據庫的安裝位置。
$safe_mysqld –basedir=”/path/to/mysql” &(Unix平臺)
c:mysqlbin>mysqld –basedir=”x:/path/to/mysql” (Win32平臺)
5、使用safe_mysqld腳本實現服務器的自動啟動
同樣你可以利用safe_mysqld和mysqld實現服務器隨操作系統自動啟動。對于Linux系統以及BSD風格的系統(FreeBSD,OpenBSD等)),通常在/etc目錄下有幾個文件在引導時初始化服務,這些文件通常有以“rc”開頭的名字,且它有可能由一個名為“rc.local”的文件(或類似的東西),特意用于啟動本地安裝的服務。
在這樣的系統上,你可能將類似于下列的行加入rc.local文件中以啟動服務器(如果safe_mysqld的目錄在你的系統上不同,修改它即可):
if?[?-x?/usr/local/bin/safe_mysqld?];?then?/usr/local/bin/safe_mysqld?&?fi
由于這樣在引導時啟動,將使用root身份啟動數據庫,在某些時候可能會產生問題和麻煩。這是你可以指定–user選項,因此可以將上面的代碼修改為:
if?[?-x?/usr/local/bin/safe_mysqld?];?then
/usr/local/bin/safe_mysqld?–user=mysql?–datadir=/path/to/data??&
fi
我們一直都在努力堅持原創.......請不要一聲不吭,就悄悄拿走。
我原創,你原創,我們的內容世界才會更加精彩!
【所有原創內容版權均屬TechTarget,歡迎大家轉發分享。但未經授權,嚴禁任何媒體(平面媒體、網絡媒體、自媒體等)以及微信公眾號復制、轉載、摘編或以其他方式進行使用。】
微信公眾號
TechTarget
官方微博
TechTarget中國