前提,因爲數據庫連接除了本地的地址都需要設置一個密碼,so因爲一些特殊原因就把數據庫裏的data給打包,然後把數據庫卸載了.刪除以前的數據庫進入命令行 --輸入: sc delete mysql出現[SC] DeleteService 成功 刪除成功! 刪除mysql所在安裝目錄文件夾windows+R 開始運行裏面輸入regedit,打開註冊表,對以下三行進行查看,有MySQL文件夾的對MySQL文件刪除
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQLctrl+f 查找與mysql有關的東西全部刪除了,卸載Mysql方面已完成。
1.下載
首先搜索mysql的官網https://dev.mysql.com/downloads/mysql/,按照下圖順序即可下載mysql5.7的免安裝版
2.安裝
將解壓下載下來的.zip文件將其解壓到你想放置數據庫的位置,我選擇放在了D盤的Program Files中
3.配置
1.>配置環境變量:我的電腦右擊屬性-高級系統設置-環境變量-下面的系統變量-Path 點擊添加 加上D:\Program Files\mysql-5.7.23-winx64\bin ,mysql的bin目錄(環境變量是告訴系統,當要求系統運行一個程序而沒有告訴它程序所在的完整路徑時,系統除了在當前目錄下面尋找此程序外,還應到哪些目錄下去尋找)
2>創建data文件
data是存放數據庫文件的目錄,管理員運行cmd命令窗口,找到你解壓MySQL文件夾下的bin目錄,輸入 mysqld –initialize-insecure –user=mysql ,回車運行,data文件夾就有了
3>在bin的同級目錄下創建my.ini()
內容如下
port = 3306
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
主要是修改下面的兩個路徑爲你自己的
basedir=D:\Program Files\mysql-5.7.23-winx64
datadir=D:\Program Files\mysql-5.7.23-winx64\data
4.因爲上面已經配置了環境變量了,所以直接win+r打開cmd,直接輸入 mysqld -install,如果出現Service successfully installed 說明註冊成功了,如想重新安裝,執行mysqld –remove即可,再進行安裝。
5.測試net stop mysql 關閉mysql服務,net start mysql 開啓mysql服務 (如果這裏提示找不指定路徑,以上配置沒問題的話可以嘗試去查看修改註冊表裏的imagepath的路徑,這只是一種方法)
6.直接登錄就行了,mysql -uroot -p密碼爲空
7.還原data文件裏的數據
如果引擎類型是MyISAM, 數據文件則以”Table.frm””Table.MYD””Table.MYI””三個文件存儲
如類型是InnoDB, 數據文件則存儲在ibdata1文件中結構文件存在於table_name.frm中.
MyISAM類型的表。的數據庫文件直接複製便可以使用
而使用“InnoDB”類型,這種類型的一個表在磁盤上只對應一個“*.frm”文件,不像MyISAM那樣還“*.MYD,*.MYI”文件。
MyISAM類型的表直接拷到另一個數據庫就可以直接使用,但是InnoDB類型的表卻不行。解決方法就是:
同時拷貝innodb數據庫表“*.frm”文件和innodb數據“ibdata1”文件到合適的位置。啓動MySQL的Windows服務
由於MySQL這樣數據混雜的形式, 往往很容易讓使用者在備份時忘記了備份InnoDB, 從而導致了上述錯誤.
意思就是說在數據庫引擎類型爲InnoDB時,拷貝數據文件的同時還需要拷貝ibdata1,於是把ibdata1也拷貝過去覆蓋,發現還是有點問題,於是停止mysql服務,將目錄下的ib_logfile*文件全部又複製了一遍,重新啓動mysql服務,可以了,
如果還不行,建議將目錄下的ib_logfile*文件全部刪除掉,重新啓動mysql服務
8.數據出來之後終於可以中再次修改密碼了,要注意5.7以後mysql.user表中沒有了password字段,而是使用authentication_string來代替。
mysql -u root -p ,use mysql
update mysql.user se tauthentication_string=password(“新密碼”) where User=”test” and Host=”localhost”;
flush privileges;
如果在flush privileges;這一步時報錯了網上推薦的是缺什麼表建什麼表,我在前便已經修改密碼完畢了,沒管這個錯誤,直接退出了,重新啓動,然後居然能用了。。。
mysql5.7