Cannot Connect to Database Server
緣由
由於不同的項目中使用的數據庫用戶名與密碼出現了不一致的情況,在其中之前較早一個項目執行過程中出現“The user specified as a definer ('root'@'localhost') does not exist”的錯誤提示。經過網絡一番搜索,原因是root用戶不存在,故自己將用戶名改回到之前的用戶名,結果出現連接不到數據庫的情況,如下圖所示:
原因
1.可能數據庫服務沒有啟動
2.可能指定的數據庫連接用戶名或密碼不正確
3.可能數據庫連接語句寫得不正確
4.可能數據庫中沒有指定的數據庫存在
5.可能沒引sql包或沒有驅動程序
解決方法
Mysqlbin目錄: C:\Program Files\MySQL\MySQL Server 5.7\bin
mysql -u root -p
刪除原來的數據庫實例后,創建新的實例,發現還是無法連接數據庫,如下所示:
還是搞不定,明天繼續,還是對mysql認知度太低!...........
將錯誤原因逐一排除,關閉重啟mysql服務,發現還是無法登錄,自己也就納了悶了。
將mysql服務關閉后,可以進入workbench,但是還是無法連接mysql,這個是必須的。根據下圖可獲知mysql配置文件my.ini位置:
網上居然有人建議重新安裝,忍不住要爆粗口了!你妹的!這是解決問題嗎?不到萬不得已的時候,誰會選擇重裝這條道路呢!
Can't connect to MySQL server on '127.0.0.1' (10061)
檢查密碼對否
如何知道密碼對否?
密碼錯誤的話會提示密碼不對
查看一下你的hosts的文件
Hosts文件位置:C:\Windows\System32\drivers\etc
難道是端口的問題?於是用telnet 127.0.0.1 3308測試端口,結果它竟然提示:
my.ini中確實用的是3308端口,用netstat -an查看,3308處於如下TIME_WAIT超時狀態:
那到底是什么原因呢?
在項目中測試發現也是提示“Host 'localhost' is not allowed to connect to this MySQL server”!要崩潰了。
啟動mysql服務,出現下圖錯誤:
重啟計算機解決問題。
還是無法連接到數據庫!
不要逼我,否則,我真的要重裝數據庫了!
嘗試無果后,重裝!
卸載過程中由於沒卸載干凈,導致安裝時又出現了一系列的問題。悲劇!
Mysql卸載教程:點擊查看
Mysql安裝教程:
http://database.51cto.com/art/201304/387439.htm
第二天........
繼續卸載、安裝,我就不信弄不好它!
為防止重裝系統后重裝數據庫,將其安裝在C盤之外的其它目錄中。
安裝過程中出現了如下錯誤:
網絡搜尋各種方法,還是未能解決問題。
再次轉換思路,換個版本試試,其中嘗試了5.7.10.但其是zip格式,解壓后還需配置一系列的文件,嘗試無果后,使用了低版本的5.5.47,msi格式,這是傻瓜式安裝方式還是比較方便的。第一次安裝后,自己曾試圖將之前的數據庫恢復,無果而終,並且導致無法更改用戶名,又是一頓狂卸載,安裝,第二次之后,用戶名可以正常更改。經測試,一切正常!
折磨自己將近3天的問題終於以這樣的方式結束了。
感觸
數據庫要及時備份,否則后果不堪設想!