正常使用的MySQL數(shù)據(jù)庫,有時(shí)在重啟電腦后,發(fā)現(xiàn)無法啟動了!或是在開發(fā)時(shí),可能經(jīng)常會經(jīng)常頻繁的啟動和停止MySQL服務(wù),有時(shí)候會出現(xiàn)“服務(wù)正在啟動或停止中,請稍候片刻后再試一次。”這樣的提示,如下圖所示。
而且,我們查看服務(wù)時(shí),也可能會發(fā)現(xiàn)服務(wù)中的啟動、停止、運(yùn)行等全是灰色的,完全無法點(diǎn)擊!
解決過程中,差點(diǎn)重新安裝了數(shù)據(jù)庫!因?yàn)槲业膍ysql數(shù)據(jù)庫中無配置文件:my.ini。原本以為是此原因!按網(wǎng)上搜索的方法,全都是要重新安裝數(shù)據(jù)庫,但里面還有重要的數(shù)據(jù)資料,重裝數(shù)據(jù)庫肯定是下下策了!于是,走另外一條路,嘗試終于可行了!
而且,連強(qiáng)制的數(shù)據(jù)庫初始化都無濟(jì)于事,而且在任務(wù)管理器的進(jìn)程下也無法找到mysqld的相關(guān)進(jìn)程,不能強(qiáng)制性的結(jié)束進(jìn)程。即便在計(jì)算機(jī)服務(wù)列表中有MySQL57這個(gè)服務(wù),但是根本就不存在可用的讓其停止或者啟動的按鈕(全部是灰色禁用的狀態(tài))。。。。
具體的教程如下:
1. 首先以管理員身份打開命令行窗口,注意是管理員身份,不然無權(quán)限訪問。
2. 輸入命令“tasklist| findstr "mysql"”,用于查找mysql的殘留進(jìn)程。果不其然,確實(shí)存在mysql的殘留進(jìn)程,難怪一直提示MySQL服務(wù)處于正在啟動或者停止的狀態(tài)中,此時(shí)要做的就是殺死MySQL進(jìn)程。
3. 輸入命令“taskkill/f /t /im mysqld.exe”,就可以將mysql殘留進(jìn)程全部殺死了,
4. 輸入命令“tasklist| findstr "mysql"”,查看是否還留有有其他的mysql殘留進(jìn)程,如果還有,則繼續(xù)殺死,直到完全殺死進(jìn)程為止。
5. 當(dāng)mysql殘留進(jìn)程全部結(jié)束之后,我們就可以正常啟動MySQL服務(wù)了,如下圖所示:
需要注意的是此時(shí)還是要以管理員的身份進(jìn)入命令行窗口。
由上圖,我們可以看到此時(shí)便可以順利的訪問數(shù)據(jù)庫了。
如果不放心的話,可以繼續(xù)測試一下,先停止MySQL服務(wù),然后再次嘗試啟動和進(jìn)行訪問
可以看到MySQL此時(shí)可以做到正常的啟動和停止服務(wù)了。
關(guān)于數(shù)據(jù)庫遷移的問題,建議按下列方式處理:
如果將本地的數(shù)據(jù)庫文件直接拷貝到數(shù)據(jù)庫中的話,在拷貝之前務(wù)必保證MySQL數(shù)據(jù)庫服務(wù)處于停止的狀態(tài),待文件拷貝完成之后,再嘗試啟動MySQL服務(wù),此時(shí)便可以順利在數(shù)據(jù)庫中訪問拷貝過來的數(shù)據(jù)庫文件了,比直接在數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù)要快的多,尤其是導(dǎo)入上億條的大數(shù)據(jù),使用這種方法事半功倍。