手動停止服務器可使用 mysqladmin 工具:
% mysqladmin shutdown
自動停止方面,BSD 系統通常發送 TERM 信號給進程,mysqld 收到後會正常終止。對於使用 mysql.server 啟動的 System V 風格系統,停止腳本會以 stop 參數調用,前提是已安裝 mysql.server。
若因無法連接而需手動重啟,常見原因有二:
可能在修改密碼時誤輸入不可見控制字符,或單純忘記密碼。
本地連接通常通過 /tmp/mysql.sock,若被 cron 任務清理臨時文件刪除,本地客端將無法連接。
重啟服務器即可自動重建套接字。但此時無法用套接字連接,必須改用 TCP/IP:
% mysqladmin -p -u root -h pit.snake.net shutdown
若 cron 會重複刪除,需修改任務或遷移套接字位置。在 /etc/my.cnf 中同時為服務端和客戶端指定新路徑:
[mysqld]
socket=/usr/local/var/mysql.sock
[client]
socket=/usr/local/var/mysql.sock
修改後重啟服務器生效。
kill 終止進程(優先嘗試正常 kill 發送 TERM 信號,若無響應再用 kill -9 強制終止,但後者可能導致表損壞,需事後用 myisamchk/isamchk 檢查)。--skip-grant-tables 選項啟動,此時可無密碼以 root 連接並修改密碼。mysqladmin flush-privileges(或 reload)使新密碼生效。適用場景:測試新版本、突破單進程文件句柄限制、ISP 為客戶提供獨立實例。
運行多實例需確保各實例參數唯一:安裝路徑、數據目錄、TCP/IP 端口、Unix 域套接字、運行用戶賬號。配置時務必仔細核對,避免衝突。