MySQL版本升級


在網上學習到Mysql的升級方式分為兩種:原地升級邏輯升級。這兩種升級方式,本質沒有什么區別的。

只是在對數據文件的處理上有些區別而已。原地升級是直接將數據文件進行拷貝,而邏輯升級對數據文件的處理方式是通過邏輯導出導入,需要用到mysqldump。 
邏輯升級這種方式在數據量比較大的情況下花費時間比較長。所以今天嘗試一下原地升級

原地升級

一.將現有的mysql關閉。使用cmd窗口,進入到mysql目錄下面,將mysql服務移除。

C:\Users\Administrator\mysql5.6\bin>mysqld --remove mysql56
Service successfully removed.

二.下載最新的mysql5.7壓縮包。

下載地址:https://dev.mysql.com/downloads/mysql/ 
最新的mysql5.7的壓縮包解壓開你會發現,沒有data目錄和my.ini文件。

data目錄中是存的數據庫文件,不建議將之前版本的data目錄復制進來,經測試 這樣做后期數據庫服務無法啟動

后面會提到當 mysql服務無法啟動 服務沒有報告任何錯誤 解決方法

 三.手動創建配置文件,文件名為:my.ini,添加內容如下:

 可復制文本如下:

[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8

[mysqld]
# 設置3306端口
port = 3306
# 設置mysql的安裝目錄
basedir=D:\\tools\mysql-5.7.25-winx64
# 設置 mysql數據庫的數據的存放目錄,MySQL 8+ 不需要以下配置,系統自己生成即可,否則有可能報錯
datadir=D:\\tools\mysql-5.7.25-winx64\data
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為8比特編碼的latin1字符集
character-set-server=utf8
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

 

四.將要升級的數據庫的服務添加到win的服務隊列中 並啟動服務

1.將mysql5.7的服務添加到win的服務隊列中

D:\tools\mysql-5.7.25-winx64\bin>mysqld --install mysqld 
Service successfully removed.
install 后面寫的服務名看 bin目錄下的mysql的應用程序是什么 我的是mysqld

2.啟動mysql服務

D:\tools\mysql-5.7.25-winx64\bin>net start mysqld mysqld 服務正在啟動 .. mysqld 服務已經啟動成功。

五.升級mysql:mysql_upgrade -uroot -p

D:\tools\mysql-5.7.25-winx64\bin>mysql_upgrade -uroot -p
.......自己升級..........

六.升級成功后,再次重啟mysql5.7服務

D:\tools\mysql-5.7.25-winx64>net stop mysqld
mysqld 服務正在停止. 
mysqld 服務已成功停止。
D:\tools\mysql-5.7.25-winx64\bin>net start mysqld 
mysqld 服務正在啟動 .. 
mysqld 服務已經啟動成功。

 

至此安裝升級完成。

 

 

另外:mysql啟動失敗,mysql服務無法啟動 服務沒有報告任何錯誤 該怎么辦

嘗試以下步驟,最終解決問題:

1 查看host文件(C:\Windows\System32\drivers\etc\hosts)

看是否修改過本地域名,如果將localhost對應的地址修改過,有可能會導致連接mysql server失敗。

解決方法:將localhost映射的地址注釋掉

2 如果在mysql的安裝路徑中沒有配置文件,則自己手動創建一個,

文件名為:my.ini,添加內容

注意:datadir屬性后的data文件夾,一定不要自己手動創建,本人嘗試手動創建會有問題,如果自己創建了可以刪除掉,再執行后面的操作。

3 在mysql5.7以上版本中默認沒有一個data目錄,即沒有初始化服務。

需要先初始化mysql才可以啟動服務,否則會報 “服務沒有報告任何錯誤”,啟動失敗。

解決方法:

a 進入mysql的bin目錄;

b 執行mysqld  --initialize-insecure ,第一次執行的話,時間會久一些,執行結束后沒有輸出信息,查看bin的同級目錄下會多出一個data文件夾,里面一堆文件。

4 再次執行net start mysql命令啟動服務,發現啟動成功!

 


免責聲明!

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



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