在討論如何啟動MySQL服務器之前,讓我們考慮一下應該以什么用戶身份運行MySQL服務器。服務器可以手動或自動啟動。如果你手動啟動
一、以非特權用戶運行MySQL服務器
在討論如何啟動MySQL服務器之前,讓我們考慮一下應該以什么用戶身份運行MySQL服務器。服務器可以手動或自動啟動。如果你手動啟動它,服務器以你登錄Unix(Linux)的用戶身份啟動,即如果你用paul登錄Unix并啟動服務器,它用paul運行;如果你用su命令切換到root,然后運啟動服務器,則它以root運行。然而,大多數情況下你可能不想手動啟動服務器,最有可能是你安排MySQL服務器在系統引導時自動啟動,作為標準引導過程的一部分,在Unix下,該引導過程由系統的Unix用戶root執行,并且任何在該過程中運行的進程均以root權限運行。
你應該牢記MySQL服務器啟動過程的兩個目標:
你想讓服務器以某個非root用戶運行。一般地,你想限制任何運行進程的能力,除非確實需要root權限,而MySQL不需要。
你想讓服務器始終以同一個用戶運行,此時用一個用戶而其他時候以另一個不同的用戶運行服務器是很不方便的,這造成了為文件和目錄以具有不同屬主的數據目錄下被創建,并可能導致服務器不能訪問數據庫或表,這看你以哪個用戶運行。統一用同一個用戶運行服務器是你避免這個問題。
要一個普通的非特權用戶運行服務器,按照下列步驟:
選擇一個用于運行服務器的用戶,mysqld可以用任何用戶運行。但在概念上較清晰的是為MySQL操作創建一個單獨的用戶。你也可以特別為MySQL選擇一個用戶組。本文使用mysqladm和mysqlgrp分別作為用戶名和用戶組名。
如果你已在自己的賬號下安裝好了MySQL且沒有系統上的特殊管理權限,你將可能在你自己的用戶ID下運行服務器。在這種情況下,用你自己的登錄名和用戶組代替mysqladm和mysqlgrp。
如果你在RedHat Linux上用rpm文件安裝MySQL,該安裝將自動創建一個名為mysql的賬號,用該賬號代替mysqladm。
如果必要,用系統通常的創建用戶的過程創建服務器賬號,你需要用root做它。
如果服務器在運行,停止它。
修改數據目錄和任何子目錄和文件的屬主,這樣使得mysqladm用戶擁有它們。例如,如果數據目錄是/usr/local/var,你可以如下設置mysqladm的屬主(你需要以root運行這些命令):
#cd /usr/local/var
#chown -R mysqladm.mysqlgrp
修改數據目錄和任何子目錄和文件的權限,使得它們只能由mysqladm用戶訪問。如果數據目錄是/usr/local/var,,你可以設置由mysqladm擁有的任何東西:
# cd /usr/local/var
# chmod -R go-rwx
當你設置數據目錄及其內容的屬主和模式時,注意符號連接。你需要順著它們并改變它們指向的文件或目錄的屬主和模式。如果連接文件的目錄位于不屬于你的地方,會有些麻煩,你可能需要root身份。
在你完成了上述過程后,你應該確保總是在以mysqladm或root登錄時啟動服務器,在后者,確定指定--user=mysqladm選項,使服務器能將其用戶ID切換到mysqladm(同時也適用于系統啟動過程)。
--user選項在MySQL 3.22中引入,如果你有老版本,你可以使用su命令告訴系統在以root運行時在特定的用戶下運行服務器。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com