數據庫MySQL多個數據庫服務沖突


一、目標名稱

  MySQL

二、目標版本

  mysql-5.6.24-win32.1432006610.zip

三、環境信息

  系統:windows 7 旗艦版

  防火牆:關閉  —— 注意:如果防火牆不關閉或不允許列外的話,遠程登陸將會失敗。

四、問題嚴重性和復雜度

  嚴重性:非常嚴重,直接導致數據庫無法使用,與之相關的所有應用均受到影響。

  復雜度:非常復雜,涉及到數據庫的安裝問題,由其他安裝應用程序引入,問題比較隱晦不容易發現。

五、問題描述

  (1) - 首先是依賴於該數據庫的程序打開時,彈出錯誤對話框提示所數據庫“某某@某某”無法訪問。

  

  在MySQL數據庫中出現這種無法訪問的原因有很多,例如服務器未開通遠程訪問權限,用戶密碼錯誤等一系列原因。上圖中‘root'@'localhost'顯示我在本地登錄,但事實上這是我已經把MySQL數據庫維護好了之后故意在本地制造的一個無法訪問的提示,因為要重現原來的我又得忙活半天了。

  (2) - 然后到Navicat中訪問數據庫同樣出現無法訪問的錯誤提示。初步判斷時數據庫服務沒啟動造成的。

  (3) - 遠程登錄到用windows 7旗艦版系統做的服務器,並用管理員權限運行命令窗口。

  (4) - 切換到mysql\bin目錄下,用mysql -u root -p登錄數據庫,發現以前設置的密碼不能用了,直接提示Access denied for user。然后我嘗試不用密碼直接登陸,我發現能夠進入MySQL,並且通過select user()查詢到自己當前的登陸用戶是root@localhost。但是用show databases查詢數據庫時始終只有infromation_schema和test兩個數據庫,而目錄下的mysql和其他應用數據庫都沒有顯示出來。並且在設置mysqladmin -u root -p password后密碼無法修改,悲催。

  (5) - 開始向通過直接卸載服務,然后重新安裝服務來解決該問題,於是我使用net stop mysql停止服務,再使用mysqld remove卸載服務。我嘗試重新安裝服務,然后再啟動mysql服務,發現仍然只有infromation_schema和test兩個數據庫。於是我開始認為是my-default.ini配置文件的問題,我又開始嘗試尋找各種配置my.ini的方法,這個啟動mysql服務的過程中出現最多的是1067。光這個問題就會把你整崩潰,因為你完全不知道錯哪兒。這里有一個非常隱晦的問題,啟動不了不一定是my.ini的問題,也可能是其他問題,例如其他的軟件也安裝並啟動了mysql服務,而我們停止的和啟動的是沖突的服務,但是一般我們無法發現,只看到它給我們反饋了1067的錯誤。我光解決這個問題就花了1天的時間,被弄得非常無語。

  (6) - 換了一台機器,在官網上下載了最新的MySQL 5.7.11 for Windows再我家用電腦上安裝之后任然只有infromation_schema和test兩個數據庫。最后不得不使用原來的mysql-5.6.24-win32.1432006610.zip數據庫版本進行解壓,不用配置my.ini直接使用默認的my-default.ini安裝啟動mysql服務后登錄可以看見mysql這個數據庫,喜出望外。

  (7) - 在本地使用Navicat測試連接,更改數據庫mysql使用update user set host='%' where user='root';  flush privilideges;更新外界訪問權限,此時還有一點問題就是我的user中有一個user為空,host為localhost的用戶,這條記錄會傷害本地連接以及遠程訪問,因此我刪掉之后就能正常訪問了。

  (8) - 原來的數據庫重新加入到data目錄下,直接拷貝其他的,注意mysql、information_schema、test等原有的數據庫就不要拷貝了,尤其是mysql。拷貝之后會發現我們拷貝過來的數據庫能看見,但是數據庫不能夠訪問,會出現inodb錯誤之類的東西。

  (9) - 將原來的數據庫中data目錄下除了跟本地用戶相關的文件的其他文件都拷貝過來覆蓋即可。

  

  (10)- 回到原來的服務器,使用Navicat登錄到本地,發現能夠登錄無密碼版本的,並且找到了zantao的數據庫,於是找到問題原因是因為這個叫禪道的軟件也啟動了mysql服務,這個服務於我安裝的服務沖突,而我在命令窗口登錄時識別到的是另外一個,這種沖突很隱晦。mysql自身無法很好的檢測。

  (11) - 停止服務,並重新配置我的數據庫,OK了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM