在Linux和Windows平台下MySQL服務器的啟動方式有很大不同,這裡將分開介紹:
Linux平台:
Linux平台下,每一個進程都需由一個用戶來運行,MySQL最好不要以root用戶來運行。我們可創建一個mysql用戶和mysql組,MySQL服務器程序目錄和數據目錄由這個用戶和組所擁有,其它用戶沒有任何權限。以mysql用戶來運行MySQL服務器。
% mysqld --user=mysql #即使以root用戶執行該命令,MySQL數據庫還是會與MySQL用戶ID關聯。
為了使服務器在系統啟動時自動以mysql用戶運行,需配置my.cnf配置文件 ,把user=mysql包含在[MySQLd]段中。
關閉服務器可用% mysql.server stop或% MySQLadmin -u root -p shutdown
Windows平台:
手動方式:直接運行c:\MySQLd命令。
作為服務方式:運行c:\mysqld-nt --install命令,把mysqld-nt安裝為windows的服務,此後,每當Windows啟動時,它就會自動運行。mysqld-nt是一個支持命名管道的MySQL服務器。運行c:\mysqld-nt --remove可把服務刪除。手動啟動關閉服務的方法是運行c:\net start mysql和c:\net stop MySQL命令。
當由於誤刪mysql套接字時(/tmp/MySQL.sock),我們就不能通過套接字連接服務器。這時我們可通過tcp/ip來連接服務器,要建立一個tcp/ip連接,需用127.0.0.1代替locahost作為-h參數的值來連接服務器。如:
% MySQLadmin -h 127.0.0.1 -u root -p shutdown #關閉服務器再重啟會重建套接字
當我們因為忘記root用戶密碼而不能連接服務器時,重設置密碼的步驟如:
用 % kill -TERM PID關閉服務器,用-TERM信息可使服務器在關閉前把內存中的數據寫入磁盤。如果服務器沒有響應,我們可用% kill -9 PID來強制刪除進程,但不建議這樣做。這時內存中的數據不會寫入磁盤,造成數據不完整。如果你是用mysql_safe腳本啟動MySQL服務器的,這個腳本會監控服務器的運行情況並在它被終止時重啟服務器,所以如需關閉服務器,要先終止該進程,然後再真正終止MySQLd進程。
接著用--skip_grant-tables啟動服務器。這時MySQL服務器將不使用權限表對連接操作進行驗證。你就可在不提供root密碼的情況下連接上服務器,並獲得root的權限。這樣你就可用上面介紹的修改密碼的方法重設root用戶的密碼。注意:連接上服務器後,要馬上執行flush privileges命令,使權限表讀入內存並生效,以阻止其他的連接。該語句還重新激活grant語句,在MySQL服務器不使用權限表時,grant語句被禁用。
修改完root用戶密碼後,我們就可關閉服務器並重啟使所有配置正常運作。