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