windows server 下重啟 MySQL(服務)


前言

個人配置環境,本地習慣用 xampp ,只需要啟動控制面板就可以了,而服務器端由於是 Linux 系統,有一套完備的指令集合很方便啟動和關閉,也不需要去操心。這次在 win­dows server 下對 MySQL 的重啟過程,讓我對進程和服務有了更深的了解。特意通過 win+R -> services.msc 打開 win­dows 服務觀察了一下,本地的 xampp 並沒有注冊服務(Apache,MySQL),而 win­dows server 上使用的 ph­p­Study 注冊了服務(服務器上安裝的 ph­p­Study 版本可以切換運行方式,是否以服務運行)。本地下載安裝最新版本的 ph­p­Study(與服務器上的版本不同),查看了一下,本地依然未注冊服務。猜測集成環境軟件本身在安裝時,判斷了宿主機的類型,根據不同的類型安裝了不同的版本。

通過任務管理器切換查看進程和服務(右擊進程轉到服務或右擊服務轉到進程)發現,每個服務(正在運行狀態)都會有一個對應的進程,但進程不一定有對應的服務。本地的 xampp 在關閉(得關閉對應的模塊)之后,進程就沒了,而在 Win­dows server 服務器上,ph­p­Study 停止后,進程沒了,同時,服務狀態切換成了已停止。進程跟服務之間存在先后關閉的關系,服務對進程有依賴,需要先關閉服務,再考慮關閉進程(關閉服務會自動關閉對應的進程),所以當你通過任務管理器關閉某個服務對應的進程時,會報錯:訪問拒絕 或者 沒有此任務實例運行。前者還算正常,后者就不知道怎么搞了,能做的只有重啟。

過程

確定使用的 MySQL 版本

因為之前不知道本地與服務器上的相關軟件的不同,加上服務器上的環境比較復雜(c 盤和 d 盤都分別安裝了 ph­p­Study,d 盤還單獨安裝了 MySQL 5.5),搞了一天也沒出結果,很頭大。因為同時存在多個環境、多個版本的 MySQL, 我需要確定之前使用的 MySQL(多個不同版本的 MySQL,存儲方式和存儲數據的位置不同,就存在了多個數據庫環境)。在 MySQL 存儲數據的目錄 data 下,找到對應的數據庫,發現里面的文件,主要以表名開頭,擴展名 frm,MYD,MYI。記得有新增幾張表,猜想有可能存在相對應的文件。全局搜索,並沒有。一臉懵逼。此路不通,想只能通過切換 MySQL 版本,然后用 Nav­i­cat 連接查看來判斷了。

切換 MySQL 版本

因為切換需要關閉現有版本的 MySQL,並且不知道存在服務的進程不能直接關閉,所以在任務管理器里直接結束進程得到 訪問拒絕 的回應后,就開始搜索通過其他方式強制關閉進程的方式。

查看進程對應的進程號(當然可以通過 任務管理器 -> 查看 -> 選擇列 -> 勾選 PID(進程標識符) 的方式直接查看)

# 查找出某個端口的PID
netstat -ano | findstr "3360"
# 或根據可執行文件名查找
tasklist | findstr "mysql"

MySQL 對應可執行文件 mysqld.exe,而 Apache 對應可執行文件 httpd.exe(我這個版本是這樣子的)。

結束進程

因為直接結束進程會報錯,當時想的就是怎么樣殺死進程,沒有考慮為什么報錯。

#殺死進程
tskill PID

#如果存在這個指令的話
ntsd -c q -p PID

#taskkill 指令
taskill /f /pid PID
taskkill /f /im  進程名

幾乎試錯了所有的解決方案,都不行。

嘗試關閉 MySQL 服務

既然無法從進程下手,就想着關閉服務,是不是就可以了呢?

注冊和刪除服務

# 刪除服務,MySQL57 為注冊服務時的名稱
sc delete MySQL57
# mysqld 刪除
mysqld --remove MySQL57

# 注冊服務,mysql5.6 為注冊服務名
mysqld --install mysql5.6
# 指定默認的配置文件
mysqld --install MySQLXY --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"

期間,啟動 MySQL 還報錯了:1067 進程意外終止,我的是因為已注冊了其他的 MySQL,將其停止即可。

實在不行可以重啟,不過要保證,同一個服務,如 MySQL ,只能有一個啟動類型為自動。

然后就好了,之后又碰到 iis 服務器啟動不了,看了一下,原來是 ph­p­Study 中的 apache 服務開啟了,將其關閉之后重試,啟動類型改成手動,或禁用。仍然啟動不了 iis, 猜測可能是服務器版本較低,有漏洞或者版本不兼容,重啟,OK。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM