三、停止伺服器
要手動啟動伺服器,使用MySQLadmin:
%mysqladmin shutdown
BSD系統一般會透過向進程發出TERM訊號停止服務,它們或正確應答它或被粗魯地殺死。 mysqld在它收到這個訊號時以終止作為應答。對於用mysql.server啟動伺服器的System V風格的系統,停止進程將以stop參數呼叫腳本,告訴伺服器終止,當然假定你已安裝了mysql.server。
四、如果你無法連接伺服器,如何重新取得伺服器的控制
在某些情況下,您可能因為無法連結它而手動重新啟動伺服器。當然,這有點矛盾。因為一般你會透過連接伺服器而手動關掉它,那麼這種情況如何會出現。
首先,MySQL root口令可以已經設定為你不知道的值,這可能發生在你修改口令時,例如,如果你在輸入新口令時偶然鍵入一個不可見的控製字元。你也可能忘記口令。
其次,連接localhost通常透過一個Unix域套接字檔案進行,通常是/tmp/mysql.sock。如果套接字檔案被刪除了,本地客戶就不能連線。這可能發生在你的系統運行一個cron任務刪除了/tmp下的臨時檔案。
如果你因為遺失套接字檔案而無法連接,你可以簡單地透過重新啟動伺服器重新建立而得到它。因為伺服器在啟動時重新創建它。這裡的騙局是你不能用套接字建立連接因為它不見了,你必須建立一個TCP/IP連接,例如,如果伺服器主機是pit.snake.net,你可以這樣連接:
## % mysqladmin -p -u root -h pit.snake.net shutdown
如果套接字檔案被一個cron任務刪除,問題將重複出現,除非你修改cron任務或使用一個或使用一個不同的套接字文件,你可以使用全域選項文件指定一個不同的套接字,例如,如果資料目錄是/usr/local/var,你可以透過將下列行加入/etc/my.cnf中,將套接字文件移到那裡:
[mysqld]
socket=/usr/local/var/mysql.sock
mysql.sock
對伺服器和客戶都指定路徑名,使它們都使用同一套接字檔案。如果你只為伺服器設定路徑,客戶程式將仍然期望在原位置執行套接字,在修改後重啟伺服器,使它在新位置建立套接字。
如果你因為忘記root口令或已經將它設定為不同於認為的值而不能連接,你需要重新獲得對伺服器的控制,是你能再次設定口令:
中斷伺服器
如果你以root登入伺服器主機,你可以用kill指令終止伺服器。你可以使用ps命令或透過尋找伺服器的PID檔案(通常在資料目錄中)找出伺服器進程的ID。
最好先嘗試用一個向伺服器發出一個TERM訊號的正常kill看它是否將以正常終止應答。在這種方式下,表和日誌將正確地被清空。如果伺服器阻塞並且不應答一個正常終止訊號,你可以用kill -9強制終止它。這是最後的手段了,因為這可能有未清空的修改,而且你冒著讓表處於不一致狀態的風險。
如果你用kill -9終止伺服器,請確保在啟動伺服器前用myisamchk和isamchk檢查你的表。
用--skip-grant-table選項重新啟動伺服器。
這告訴伺服器不使用授權表驗證連接,這允許你以root連接而無須口令。在你已經連線後,改變root口令。
用mysqladmin flush-privileges告訴伺服器再次使用授權表啟動
如果你的mysqladmin版本不認識Flash-privileges,試試reload。
五、運行多個伺服器
大多數再一台給定的機器上執行單一MySQL伺服器,但在許多情況下,運行多個伺服器是很有用的:
你可能想要測試一個伺服器的新版本,而保留你正在運作的生產伺服器。在這種情況下,你會運行不同的伺服器程式碼。
作業系統一般限制每個程序的開啟檔案句柄數量。如果你的系統很難提高這個限制,運行多個伺服器是解決限制的一種方法。在這種情況下,你可能會運行統一伺服器的多個實例。
ISP經常為其客戶提供自己的MySQL安裝,且有必要涉及單獨的伺服器。在這種情況下,你可能會執行同一版本的多個實例或不同版本,如果不同的客戶想要不同版本的MySQL。
自然地,運作多個伺服器比只運作一個伺服器複雜得多。如果你安裝多個版本,你不能在同一個地方安裝所有東西。當伺服器運行時,某些參數必須或很可能對每個伺服器是唯一的,它們包括伺服器在哪裡安裝、其資料目錄的路徑名稱、TCP/IP連接埠和UNIX域套接字路徑名稱以及用於運行伺服器的UNIX帳號(如果你不再在同一帳號下執行所有伺服器)。如果你決定要運行多個伺服器,一定要注意你使用的參數,是你不至於。
以上是教你如何啟動和停止Mysql服務之二的詳細內容。更多資訊請關注PHP中文網其他相關文章!