用某破解版程序,運行一段時間數據庫就被清空(哎,遭報應了),密碼被修改無法登陸。
之前也沒遇到過這個問題,第一次遇到問題以為是服務器出錯數據密碼錯誤了。之后重新安裝mysql,保留數據內容之后發現數據庫中的表不見了。
嗯,可能是服務器數據丟失了。那就重新安裝一次程序吧。
之后又用了兩個天又不能用了,出現了和第一次的狀況一樣。可能意識到情況比較嚴重。查看mysql日志最后發現有drop數據庫的操作。
額,密碼錯誤,數據庫被刪應該就是遭到盜取了。
不能每次都重新安裝數據庫吧。遂想修改密碼,還原數據。
網上的方法都是mysql5.7的方法,不適用於8.0。不過最終還是找到了可用的方法,現在紀錄下來。以備不時。
首先mysql8.0的安裝路徑和數據路徑是分開的。
運行無密碼模式:
停掉mysql數據庫服務。到mysql安裝目錄下bin 運行mysqld.exe 開啟無密碼模式的mysql服務
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld.exe --defaults-file="C:\Progr
amData\MySQL\MySQL Server 8.0\my.ini" --skip-grant-tables --shared-memory
需要加載默認的ini文件 后面的 --skip-grant-tables --shared-memory 的作用和5.7的--skip-grant-tables 相同。
繼續到mysql安裝目錄下bin 運行
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u root -p
可能會提示輸入密碼,直接回車即可。進入mysql 命令行管理程序。就可以修改密碼了。
我這里使用nactive把密碼修改成空的。不知道是不是我操作的問題網上的5.7的重置密碼方法無效。只把密碼設置為空。到任務管理器關閉mysql程序。啟動mysql服務用nactive再次修改密碼。
有了兩次的教訓。這次單獨為數據庫建立一個登陸賬號,去掉表的刪除權限,防止在被刪除吧。看看還會不會修改表結構。不行再把修改表去掉