偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

超詳細(xì)的MySQL數(shù)據(jù)庫升級

數(shù)據(jù)庫 MySQL
本文通過邏輯方式、物理方式原地升級來介紹MySQL5.6 升級至MySQL5.7的方法,并介紹其使用場景。

當(dāng)前不少系統(tǒng)的數(shù)據(jù)庫依舊是MySQL5.6,由于MySQL5.7及MySQL8.0在性能及安全方面有著很大的提升,因此需要升級數(shù)據(jù)庫。本文通過邏輯方式、物理方式原地升級來介紹MySQL5.6 升級至MySQL5.7的方法,并介紹其使用場景。

邏輯方式升級其實就是通過邏輯備份工具(例如mysqldump工具)將數(shù)據(jù)庫、表、其他相關(guān)對象及數(shù)據(jù)邏輯備份成SQL腳本,再將其還原至MySQL5.7的實例中。

詳細(xì)步驟如下:

1.1 備份數(shù)據(jù)庫

當(dāng)前數(shù)據(jù)庫的版本為MySQL5.6.27,現(xiàn)在準(zhǔn)備備份

因為庫比較小,因此使用mysqldump進行備份即可。mysqldump備份的方法可以參考?xì)v史文章進行了解

?MySQL數(shù)據(jù)備份及還原(一)https://mp.weixin.qq.com/s/JbLThtgUq5RjkCuztSgBJg或https://www.cnblogs.com/gjc592/p/12505347.html

備份腳本:

/*  備份所有庫及相關(guān)對象 */
/usr/local/mysql/bin/mysqldump -uroot -p
--socket=/app/data/mysql3307/tmp/mysql.sock --master-data=2 --default-character-set=utf8 --routines --triggers --events --flush-logs --flush-privileges --single-transaction --all-databases > all_db.sql

1.2 部署一套MySQL5.7實例

MySQL5.7 的部署歷史文章里也有,如果不太熟悉的同學(xué)可以參考如下鏈接文章?MySQL5.7安裝https://mp.weixin.qq.com/s/fbp-3hpMxrCc7R3_HQTchA或https://www.cnblogs.com/gjc592/p/9203711.html

安裝過程比較簡單,本文不再贅述。?

1.3 數(shù)據(jù)導(dǎo)入MySQL5.7

將備份的MySQL5.6的數(shù)據(jù)導(dǎo)入到MySQL5.7 中即可。

1.4 應(yīng)用場景

  • 數(shù)據(jù)量小的情況下使用,此方式通常不會失敗
  • 在跨大版本升級的時候使用較多,例如,從MySQL5.6(或更低版本)直接升級到8.0版本
  • 不同MySQL分支之間升級

原地升級方式

使用mysql_update方式原地升級時,時間相對較快,尤其是數(shù)據(jù)庫體量較大時,此方式可以原地直接升級。

步驟如下:

2.1 下載MySQL5.7

下載需要升級到的版本的數(shù)據(jù)庫,例如本次升級到MySQL5.7.25-28版本(percona分支),則下載對應(yīng)安裝包,解壓后配置軟連接。

2.2 修改配置文件

因MySQL5.6 的部分參數(shù)再MySQL5.7 中已經(jīng)廢棄或者默認(rèn)值發(fā)生變化,另外也為了使用MySQL5.7的新特性,需要添加對應(yīng)的參數(shù)配置,例如:

  • sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION# 保持和MySQL5.6一致。
  • innodb_large_prefix =OFF# 保持和MySQL5.6 一致。
  • log_timestamps=SYSTEM # 新增參數(shù),如果不添加,默認(rèn)日志里采用UTC時間格式記錄,我們看上去可能不太方便。
  • secure_file_priv=/tmp # MySQL5.7對安全性做了很多提升,此參數(shù)不配置的話默認(rèn)無法使用load file 及ELECT …OUTFILE等。
  • character_set_server= utf8 # 雖然建議使用utf8mb4字符集,但是如果需要保持和原庫一致,需要指定。

當(dāng)日,還有很多新特性的參數(shù)需要調(diào)整,在此不再一一列舉,需要的同學(xué)直接聯(lián)系我 或者參考?xì)v史文章配置即可。

2.3 關(guān)閉MySQL5.6 實例

MySQL5.6的關(guān)閉可以使用停止服務(wù)的方式,也可以通過命令行方式,命令如下:

/*  mysql5.6 關(guān)閉實例的方式需要使用mysqladmin */
/usr/local/mysql/bin/mysqladmin --socket=/app/data/mysql3307/tmp/mysql.sock -uroot -p shutdown

建議:生產(chǎn)環(huán)境中,如果可以使用此方式升級,強烈建議先直接冷備一下整個數(shù)據(jù)庫的數(shù)據(jù)目錄,以防止升級失敗等情況出現(xiàn)。

2.4 使用MySQL5.7 啟動原庫

此時需要用MySQL5.7來啟動數(shù)據(jù)庫,啟動后日志里會有一些報錯信息。

啟動數(shù)據(jù)庫

/usr/local/mysql5.7/bin/mysqld_safe  --defaults-file=/app/data/mysql3307/etc/my.cnf &

日志里內(nèi)容如下,出現(xiàn)很多錯誤,其中也提示到需要使用mysql_upgrade進行修復(fù):

2.5 升級數(shù)據(jù)庫

MySQL升級工具是mysql_upgrade,錯誤日志里也提到了使用mysql_upgrade進行修復(fù)相應(yīng)的錯誤。升級的方法如下:

/*  升級系統(tǒng)庫及業(yè)務(wù)庫 */
/usr/local/mysql5.7/bin/mysql_upgrade --socket=/app/data/mysql3307/tmp/mysql.sock -uroot -p

如果只需要升級系統(tǒng)庫,則加-s參數(shù);如果升級過程中有錯誤或者中斷后想再次升級 可以添加--force參數(shù)強制升級

/*  只升級系統(tǒng)庫 */
/usr/local/mysql5.7/bin/mysql_upgrade --socket=/app/data/mysql3307/tmp/mysql.sock -uroot -p -s
/* 強制升級 */
/usr/local/mysql5.7/bin/mysql_upgrade --socket=/app/data/mysql3307/tmp/mysql.sock -uroot -p --force

2.6 后續(xù)工作

升級完成后建議再進行以下工作

  • 重啟數(shù)據(jù)庫,以便所有功能生效;且重啟后再次查看數(shù)據(jù)庫日志
  • 修改環(huán)境變量及軟連接,以便默認(rèn)使用MySQL5.7的相關(guān)命令

附: 升級后數(shù)據(jù)庫啟動日志

2.7 使用場景

相同大版本之間的小版本升級。

數(shù)據(jù)量較大,提前測試過兩個版本之間可以原地升級時再用。

小結(jié)

MySQL的邏輯升級及mysql_upgrade的原地升級都有各自的應(yīng)用場景。但是無論用哪種方式,都要注意以下幾點:

a) 在生產(chǎn)環(huán)境上進行升級操作之前一定需要先在測試環(huán)境中多次進行相同版本的升級測試工作。

b) 實際工作中,測試環(huán)境升級成功后需要經(jīng)過相關(guān)業(yè)務(wù)的回歸測試,確保相關(guān)功能升級后能正常使用后再在生產(chǎn)環(huán)境進行升級,建議測試環(huán)境進行1個月以上的測試。

c) 生產(chǎn)環(huán)境升級前一定要進行備份。

d) 生產(chǎn)環(huán)境的升級順序建議是先升級從節(jié)點,再升級主節(jié)點或進行主從切換。

以上就是MySQL5.6升級至MySQL5.7的2種主要方式,升級到MySQL8.0方法相同,但有些參數(shù)細(xì)節(jié)需要修改,大家可以自行測試。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2019-04-02 10:36:17

數(shù)據(jù)庫MySQL優(yōu)化方法

2011-05-26 13:29:30

ORACLE數(shù)據(jù)庫升級

2019-08-01 07:31:51

數(shù)據(jù)庫主機日志

2019-09-10 07:58:01

字符集MySQL數(shù)據(jù)庫

2019-09-11 11:38:30

MySQLInnoDB數(shù)據(jù)庫

2025-06-23 08:40:00

MySQL數(shù)據(jù)庫運維

2019-11-05 14:20:02

Oracle分組函數(shù)數(shù)據(jù)庫

2019-10-22 07:50:45

SqlServer數(shù)據(jù)庫觸發(fā)器

2021-07-09 13:58:16

MySQL數(shù)據(jù)庫運維

2010-06-29 17:56:47

正確升級SQL Ser

2019-07-23 07:52:41

數(shù)據(jù)庫MySQL優(yōu)化方法

2019-06-18 10:31:23

數(shù)據(jù)庫端口URL

2019-08-20 09:46:14

DBA收藏腳本語言

2015-07-16 17:00:15

MySQLMariaDBPercona

2020-08-07 08:04:03

數(shù)據(jù)庫MySQL技術(shù)

2011-08-02 18:38:19

MySQLINI文件

2025-04-09 11:35:00

MySQL數(shù)據(jù)庫監(jiān)控

2019-08-20 22:06:32

Oracle數(shù)據(jù)庫索引

2024-04-18 09:00:00

MySQL數(shù)據(jù)庫

2011-08-05 16:32:29

MySQL數(shù)據(jù)庫ENUM類型
點贊
收藏

51CTO技術(shù)棧公眾號