1. 程式人生 > >mysql進階(十七)Cannot Connect to Database Server

mysql進階(十七)Cannot Connect to Database Server

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

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天的問題終於以這樣的方式結束了。

感觸

      資料庫要及時備份,否則後果不堪設想!

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述