mysql5.7免安裝版刪除 下載 安裝 配置 並將以前數據庫的data文件複製進來的一些問題

前提,因爲數據庫連接除了本地的地址都需要設置一個密碼,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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章