因為windows系統有時會出現自動更新,重啟電腦后可能會出現連接不上mysql的問題。如圖所示:
分析該問題,導致這種狀況出現的一般有四個原因:mysql服務器未開啟、bind-address 對於連接的ip做了一個限定、數據庫用戶只能在指定的ip上連接、防火牆。大多數情況下是防火牆的問題,可以跳過前面的三個步驟,直接進行防火牆的檢查。下面是檢查的具體操作:
第一個檢查:確認mysql服務器啟動成功
點擊“此電腦”右鍵打開管理進入注冊表環境中
選擇左邊欄目中的服務與應用程序的子目錄“服務”
進入“服務”后,我們可以看到所有服務的運行情況。在鍵盤上輸一個“m”,找到mysql的位置。
打開mysql,查看服務器是否在運行中。如果處於停止狀態,可以手動打開。因為手動打開,操作起來比較麻煩,可以選擇啟動方式為自動,下一次在UI界面連接數據庫時就可以不用手動啟動服務器。
第二個檢查:確認mysql是否已經開啟遠程連接
在cmd中登錄本機mysql服務,使用mysql數據庫。點擊“win+R”,打開運行,在運行輸入框里面輸入"cmd"。如果第一次在cmd中打開mysql,會出現下面的情況。
Ps:解決辦法
選中“此電腦”,點擊右鍵選擇屬性->“高級系統設置”
接着點擊“高級”下的“環境變量”
在環境變量系統變量里面找到"path",點擊編輯,如下圖所示:
按“win+D”切換到桌面,找到mysql的安裝目錄,復制其地址到path中,用英文分號分割path先前的內容,然后一直點擊確定。
這樣就配置好了環境變量,重新打開cmd登錄本機mysql服務,使用mysql數據庫
輸入select host,user from user; 顯示如下,表示已經可以遠程連接。然后flush privileges;進行刷新(平時更改配置的時候基本是需要刷新的,不管是windows還是linux)
若沒有如圖顯示,則首先對mysql授權遠程連接。如下:
登錄本機mysql,使用mysql數據庫,因為用戶表都是存在mysql數據庫里面的。
輸入命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
'root'@'%' 中,root表示授權的用戶,@表示授權的IP,@表示授權所有IP。在這里,我們采用的是授權所有IP的所有功能,當然,我們還可以對數據庫的某些功能進行限定。
1. 檢查mysql的配置文件(一般在mysql安裝目錄下的mysql.ini),用記事本打開。檢查是否有綁定IP,即bind-address,若有,即用#注釋或者刪除即可,同時查看是否允許TCP/IP。
4. 防火牆設置
可以檢查一下windows防火牆是否關閉,我們先關閉防火牆,然后再嘗試連接。
經過上面常見的檢查以后,mqsql應該可以成功連接了。如果還有問題,我們可以檢查我們的網絡是否通了,有沒有對應好局域網與公網的防火牆之類的。