本篇文章給大家帶來mysql重新安裝的相關知識,相信有不少人遇到過需要重新安裝mysql的經歷,忘記root密碼怎么辦?不同的系統又應該怎樣操作,下面我們就來看一下重新安裝mysql會遇到的問題,應該怎么解決,希望對大家有幫助。
近日遇到一個問題 重新安裝了一下系統,但慶幸的是mysql的安裝目錄 沒有安裝在系統盤。
那么如何找回之前mysql內的數據?
長話短說,先講一下來龍去脈。漲知識了
你是否有在Linux下安裝過mysql,并且忘記了mysql root密碼的經歷?(或者Windows下)
你是否有配置過jdk環境變量的體驗?
哈哈~ 相信很多小伙伴和我有過一樣的經歷。
發現密碼登錄不進去是不是快瘋了?安裝一個mysql都經歷了多種磨難,甚至有小伙伴因為數據庫問題 ~ _~ !一次沒有安裝好導致再來安裝都不能成功。甚至后面還重裝系統了。
那么下面將會是解決你所有疑問的答案:
以 mysql8.0 + Windows 環境 為例:
在你進行安裝的的時候如果沒有選擇路徑那么mysql默認安裝在C盤,如果你有指定安裝路徑
那么找一下mysql的安裝在那里了
如果你之前安裝過Mysql
那么先檢查一下服務里面有沒有mysql服務 此電腦==》管理==》服務和應用程序==》服務 如下圖
卸載mysql服務,如果有多余的服務可以通過
sc.exe delete 服務名 刪除沒用的服務,刪除后需要重啟電腦
sc.exe delete MySql
也可以用查看服務屬性找到服務的位置mysqld.exe remove刪除(這種方式不一定有效,如果路徑出了問題的話,)
如果原文件還在則可以通過這個路徑下的mysqld.exe remove刪除服務
我們來做個實驗,體驗一下解壓縮版的(綠化的)mysql怎么配置,需要在一臺沒有安裝過mysql的Windows下執行,可以用VMware虛擬即安裝一個Windows環境,關于Windows的下載可以在我的安裝操作系統中找的到,https://msdn.itellyou.cn/有所有Windows系統的ed2k鏈接的鏡像,下載下來即可
第一步、去mysql官網下載一個免安裝版的MySQL的zip包
https://dev.mysql.com/downloads/mysql/
然后進行解壓縮,進入解壓縮的目錄下查看一下有上面文件
第二步、安裝服務 和 初始化mysql
通過Windows徽標 + X 再通過 A 以管理員身份運行powerShell窗口
注意一定要以管理員身份運行不然后面執行會報錯(CMD也行同樣管理員身份)
切換到解壓縮目錄下:
相應的命令
先 盤符:/
然后 cd 到解壓縮目錄
當然也可以按住Shift + 鼠標右鍵 會有一個powershell窗口
如下圖
正式開始
安裝服務 這個mysqld實際就是mysql的服務程序,所以運行mysqld就是運行mysql服務
.mysqld.exe install
如果提示mysql已經安裝了則在服務里找到mysql服務,啟動mysql服務,或者通過mysql.exe remove移除服務先要stop停止
初始化
.mysqld.exe --initialize-insecure --user=mysql
如上圖會得到data文件夾,里面存放的是數據庫信息,刪除后數據庫也不在了,需要重新操作才可
還不能登錄需要手動啟動服務
第一次使用mysql 可以通過mysql.exe -u root -p直接登錄進去,如果數據庫里沒有內容則刪除data文件夾(手動關閉mysql服務才可以刪除)
然后重新手動啟動服務,重新初始化數據庫如何登錄進(第一次不需要密碼) 將下面的123456改成你想要的密碼即可
修改root密碼(需要在mysql的bin目錄下操作,如果配置了環境變量就不需要在bin目錄下)
.mysqld.exe -u root -p
use mysql;
ALTER USER `root`@`localhost` IDENTIFIED BY '123456';
如果你只是想安裝mysql那么上面已經安裝完了
下面是忘記root密碼,進入數據庫修改的操作
第1步、關閉服務 也可以通過服務手動關閉(前面的截圖),或者輸入下面的命令
net stop mysql
第2步、(管理員身份)cd 到mysql主目錄的bin目錄下
.mysqld.exe --console --skip-grant-tables --shared-memory
如圖
需要另外開一個powershell窗口在bin目錄下 按住Shift 鼠標右鍵會有一個在此處打開powershell窗口
然后登錄進去(不需要輸密碼)直接回車即可登錄進去
.mysql.exe -u root -p
啟用mysql數據庫
use mysql;
這里的 authentication_string不是密碼后面操作才是真正修改密碼的
update user set authentication_string='' where user='root';
上面只是為了運行root無密碼登錄,因為前面通過–skip-grant-tables選項導致修改密碼的sql : ALTER USER `root`@`localhost` IDENTIFIED BY '123456';不能修改密碼
退出登錄
quit
并且把那個執行命令帶有 –skip-grant-tables 窗口關閉
然后啟動mysql服務
net start mysql
按照正常的登錄,不需要輸root密碼即可登錄進去
.mysql.exe -u root -p
use mysql;
修改root密碼
ALTER USER `root`@`localhost` IDENTIFIED BY '123456';
在使用mysql的過程中是否有疑問?mysql的數據源到底放在了哪里?下面解答
mysql的數據源實際就在data文件夾內,我們進行一個實驗嘗試一下
使用目的:
證明mysql的數據源在data文件夾下,并且可以通過指定數據源路徑,直接使用mysql找到原來的數據。即使現在電腦上沒有安裝mysql,然后通過復制原來mysql安裝目錄,來繼續使用原來的mysql數據庫和數據;
實驗部分:
為了實驗有效果我們創建一個數據庫,這里干脆叫demo(如果你本身有數據庫那么更好直接下面實驗)
下面的使用即使沒有安裝過mysql數據庫,也可以操作,只需mysql的主目錄即可(數據data文件夾下)
第一步、關閉mysql服務 net stop mysql
第二步、新建my.ini文本文件,用來指定mysql位置和數據源位置
將mysql主目錄下的data文件夾復制 到D:/盤根目錄下 需要關閉服務才可以移動,否則會提示后臺占用!
新建 my.ini 文本文件(干脆放在D:mysql-8.0.18-winx64 即放在主目錄下,5.5以前有這個文件后面都沒有了)
寫入如下的代碼,指定數據庫的主目錄,數據源路徑 以及端口
[mysqld] basedir = D:mysql-8.0.18-winx64 datadir = D:data port =3306
然通過mysqld啟動mysql服務如下圖
此時其實也可以通過第三方工具鏈接mysql 例如Navicat
下面通過命令連接,需要另開一個窗口
可以看到這里連上了mysql并且是原先的數據庫!!
反例測試 一、
關閉前面所以powershell窗口
在前面的基礎上 將my.ini刪除,這樣mysqld就找不到數據源,看下它提示了什么錯誤
這里因為沒有my.ini告訴mysqld程序mysql主目錄在那以及數據源在那,導致執行失敗
現在通過.mysql.exe -u root -p肯定連接不上因為mysql服務都沒有啟動起來
反例測試 二、
將my.ini的datadir刪除,如下圖
然后和前面一樣試試
此時報了一堆錯誤,具體錯誤自己看下錯誤的提示 ,然后你只需要根據錯誤的提示修改即可,
比如說第一個ERROR 提示 不能找到錯誤信息文件
error-message file只需要在配置文件 指定即可正確的位置即可
【推薦:mysql視頻教程】