共計 4687 個字符,預計需要花費 12 分鐘才能閱讀完成。
本篇內容介紹了“MySQL 數據庫的啟動與終止方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
由于 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: mysqlin mysqld –standalone
或者 C: mysqlin mysqld-nt –standalone
如果你使用 mysqld 并且沒有把 mysql 安裝在標準的位置,通常需要提供—basedir 選項你的數據庫的安裝位置。
$safe_mysqld –basedir=”/path/to/mysql”(Unix 平臺)
c:mysqlin mysqld –basedir=”x:/path/to/mysql”(Win32 平臺)
5、使用 safe_mysqld 腳本實現服務器的自動啟動
同樣你可以利用 safe_mysqld 和 mysqld 實現服務器隨操作系統自動啟動。對于系統以及 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
使用腳本 mysql.server 啟動關閉數據庫
對于 Unix 平臺上的分發,比較好的辦法是使用數據庫腳本 mysql.server, 啟動和關閉數據庫。
1、mysql.server 腳本的存放位置
mysql.server 腳本安裝在 MySQL 安裝目錄下的 share/mysqld 目錄下或可以在 MySQL 源代碼分發的 support_files 目錄下找到。對于 rpm 分發,該腳本已經改名 mysql 位于 /etc/rc.d/init.d 目錄中,另外在…. 中存在一個副本 mysql.server。下文的討論對 RPM 分發來說,都在安裝中完成了。如果你想使用它們,你需要將它們拷貝到適當的目錄下。
2、如何使用 mysql.server 腳本啟動停止服務器
mysql.server 腳本可以被用來啟動或停止服務器,通過用 start 或 stop 參數調用它:
$ mysql.server start
$ mysql.server stop
3、mysql.server 的功能簡述
在 mysql.server 啟動服務器之前,它把目錄改變到 MySQL 安裝目錄,然后調用 safe_mysqld。如果你有在一個非標準的地點安裝的二進制分發,你可能需要編輯 mysql.server。修改它,運行 safe_mysqld 前,cd 到正確的目錄。
4、讓 mysql.server 以特定的用戶啟動服務器
如果你想要作為一些特定的用戶運行服務器,你可以改變 mysql_daemon_user=root 行使用其他用戶,你也能修改 mysql.server 把其他選項傳給 safe_mysqld。
當然你也可以利用選項文件給 mysql.server 腳本提供參數。
你也可以在一個全局“/etc/my.cnf”文件中增加 mysql.server 的選項。一個典型的“/etc/my.cnf”文件可能看起來像這樣:
[mysqld]
datadir=/usr/local/mysql/var
socket=/tmp/mysqld.sock
port=3306
[mysql.server]
user=mysql
basedir=/usr/local/mysql
mysql.server 腳本使用下列變量:user、datadir、basedir、bindir 和 pid-file。
5、利用 mysql.server 腳本讓服務器自動啟動
mysql.server 腳本的重要性在于你可以使用它配置一個隨操作系統自動啟動的數據庫安裝,這是一個實際的系統中常用的方法。
把 mysql.server 復制到 /etc/rc.d/init.d 目錄里面:
# cd /etc/rc.d/init.d
# cp /usr/local/mysql/support-files/mysql.server mysql
接著把它的屬性改為“x”(executable,可執行)
# chmod +x mysql
最后,運行 chkconfig 把 MySQL 添加到你系統的啟動服務組里面去。
# /sbin/chkconfig –del mysql
# /sbin/chkconfig –add mysql
你也可以這樣做,手工建立鏈接:
#cd /etc/rc.d/rc3.d (根據你的運行級不同而不同,可以是 rc5.d)
#ln –s ../init.d/mysql S99mysql
在系統啟動期間,S99mysql 腳本利用 start 參數自動啟動。
使用 mysqladmin 實用程序關閉、重啟數據庫
日常維護數據庫,經常需要關閉或者重新啟動數據庫服務器。mysql.server stop 只能用于關閉數據庫系統,并不方便,而且 mysql.server 腳本用特定用戶身份啟動服務器,因此使用該教本需要超級用戶的權限。相比之下 mysqladmin 就方便的多,并且適用于 MySQL 所有類型、平臺的安裝。
關閉數據庫服務器
mysqladmin shutdown
重啟數據庫服務器
mysqladmin reload
獲得幫助
mysqladmin –help
mysqladmin 實用程序非常有使用價值,仔細閱讀幫助輸出,你會得到更多的用法。
如果出現下面的錯誤:
mysqladmin: connect to server at localhost failed
error: Access denied for user: (Using password: YES)
表示你需要一個可以正常連接的用戶,請指定 -u - p 選項,例如,你現在可以:
shell mysqladmin -u root -p shutdown
Enter Password:***********
輸入你修改過的密碼即可。
啟動或停止 NT 平臺上的系統服務
上面幾節介紹了 Unix 平臺上使數據庫服務器自動啟動的方法,而在(NT)平臺上為了讓 MySQL 自動啟動,你需要將 MySQL 服務器安裝成 NT 系統的一種服務。
1、將 MySQL 安裝成系統服務
對于 NT,服務器名字是 d -nt。
C:mysqlin mysqld-nt –install
(你可以在 NT 上使用 mysqld 或 mysqld-opt 服務器,但是那些不能作為一種服務啟動或使用命名管道。)
2、修改選項文件
如果你的 mysql 沒有安裝缺省的位置 c:mysql,那么因為數據庫將無法確定數據庫目錄的位置,而無法啟動。這種情況下,你需要提供一個全局的選項文件 c:my.cnf。將安裝目錄中的 my-example.cnf 文件拷貝到 c 盤根目錄下。修改或加入:
[mysqld]
basedir = x:/path/to/mysql/
3、啟動、停止服務器的方法
你可以用下列命令啟動和停止 MySQL 服務:
NET START mysql
NET STOP mysql
注意在這種情況下,你不能對 mysqld-nt 使用任何其他選項! 你需要使用選項文件提供參數。可以在選項文件中提供合適的參數。
使用選項文件提供服務器的參數
本節介紹守護程序需要的比較重要的選項。
對于全局選項文件(windows:c:/my.cnf 或者 unix:/etc/my.cnf),比較重要的選項有:
user 運行守護程序的用戶,如果你使用 mysql.server,并且在 [mysql.server] 中指定了 user,那么這個選項沒有必要。
log-update=file 更新日志名,對于恢復數據庫有重要意義,數據庫服務器將生成 file.n 為名的更新日志文件。
-l, –log[=fil
“MySQL 數據庫的啟動與終止方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!