MySQL 5.6.47升級到5.7.20(一)
原文連結:
1.升級方法介紹
MySQL升級方式有兩種,一種叫In-Place Upgrade,另一種叫Logical Upgrade (邏輯升級方式)。
Logical Upgrade:利用mysqldump來直接匯出SQL檔案,然後匯入到新庫中,適應於跨大版本的升級方案,做法相對安全,並能整理表中碎片。但如果有資料量較大的庫需要mysqldump匯出,時間上的消耗就會很大,升級效率就會受到影響。
In-Place Upgrade:它的工作方法簡單快速,就是直接替換掉原來版本MySQL的安裝目錄和my.cnf配置檔案,利用mysql_upgrade指令碼來完成系統表的升級。
本文演示使用In-Place Upgrade升級MySQL。
2.升級步驟
2.1操作之前,檢視版本
[root@source bin]# /usr/local/mysql/bin/mysql -V
mysql Ver 14.14 Distrib 5.6.47, for linux-glibc2.12 (x86_64) using EditLine wrapper
2.2設定引數innodb_fast_shutdown為0
需要將innodb_fast_shutdown引數設定為0
set global innodb_fast_shutdown=0;
注:innodb_fast_shutdown有0、1、2三個值。
引數值為0代表MySQL關閉,InnoDB需要完成所有的full purge和merge Insert buffer操作,這個過程需要一定的時間,有時可能會花上幾個小時。
引數值為1是該引數的預設值,表示關閉MySQL時不完成full purge和Merge insert buffe操作,但是緩衝池中的髒頁還是會寫到磁碟中。
引數值為2時,表示既不完成full purge和Merge insert buffer操作,也不將緩衝池中的髒頁重新整理到磁碟,而是將日誌寫入日誌檔案中。
2.3關閉MySQL服務
命令如下:
[root@source bin]# /usr/local/mysql/bin/mysqladmin -uroot -poracle123 shutdown
2.4替換MySQL軟體
需要執行unlink mysql命令,取消連結到MySQL 5.6.47版本的連結檔案。
解壓新版本的MySQL軟體包,然後重新做連結並賦予MySQL許可權。命令如下:
cd /usr/local
unlink mysql
tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql
chown -R mysql:mysql mysql
2.5替換引數檔案
把MySQL5.6的配置檔案替換成5.7版本的my.cnf。
2.6啟動MySQL例項
注:在啟動過程中,需要新增–skip-grant-tables和–skip-networking引數,來保證沒有 任何的應用連線,讓升級過程更加安全。
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables --skip-networking &
2.7升級系統表資料字典資訊
命令如下:
/usr/local/mysql/bin/mysql_upgrade
輸出結果:
[root@source local]# /usr/local/mysql/bin/mysql_upgrade Checking if update is needed. Checking server version. Running queries to upgrade MySQL server. Checking system database. mysql.columns_priv OK mysql.db OK mysql.engine_cost OK mysql.event OK mysql.func OK mysql.general_log OK mysql.gtid_executed OK mysql.help_category OK mysql.help_keyword OK mysql.help_relation OK mysql.help_topic OK mysql.innodb_index_stats OK mysql.innodb_table_stats OK mysql.ndb_binlog_index OK mysql.plugin OK mysql.proc OK mysql.procs_priv OK mysql.proxies_priv OK mysql.server_cost OK mysql.servers OK mysql.slave_master_info OK mysql.slave_relay_log_info OK mysql.slave_worker_info OK mysql.slow_log OK mysql.tables_priv OK mysql.time_zone OK mysql.time_zone_leap_second OK mysql.time_zone_name OK mysql.time_zone_transition OK mysql.time_zone_transition_type OK mysql.user OK Upgrading the sys schema. Checking databases. sys.sys_config OK test.BONUS OK test.DEPT OK test.EMP OK test.SALGRADE OK Upgrade process completed successfully. Checking if update is needed. [root@source local]#
沒有報錯,表示系統表資料字典資訊升級成功。
2.8重啟MySQL服務
首先停掉MySQL服務,命令如下:
/usr/local/mysql/bin/mysqladmin -uroot -poracle123 shutdown
然後正常啟動MySQL服務,命令如下:
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
說明:正常啟動MySQL資料庫,不要使用–skip-grant-tables和-skip-networking引數。
2.9驗證MySQL版本
目前己經是MySQL5.7版本,證明升級成功:
[root@source local]# /usr/local/mysql/bin/mysql -V
/usr/local/mysql/bin/mysql Ver 14.14 Distrib 5.7.20, for linux-glibc2.12 (x86_64) using EditLine wrapper
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31556440/viewspace-2683870/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- centos6.5上安裝mysql 5.7.20CentOSMySql
- Windows 安裝 MySQL 5.7.20 教程(及常見問題解決)WindowsMySql
- MySQL 5.7 升級到 8.0MySql
- MySQL5.5升級到MySQL5.7踩坑日記MySql
- mysql 5.6 升級 到 5.7 的二進位制升級方法 另一個簡便思路.MySql
- 升級到 MySQL 8.4,MySQL 啟動報錯:io_setup() failed with EAGAINMySqlAI
- Centos 7 升級通過 yum 安裝的 MySQL 5.7 到 MySQL 8.0CentOSMySql
- GitHub是怎樣把MySQL 5.7升級到8.0的?GithubMySql
- 記一次mysql小版本升級MySql
- 不可不知的 MySQL 升級利器及 5.7 升級到 8.0 的注意事項MySql
- dna --- 一個 dart 到 native 的超級通道Dart
- 蝴蝶效應關於一次Mac中mysql非自願升級到8.0的資料找回MacMySql
- PHP+MySQL 千萬級資料處理案例(一)PHPMySql
- mysql的升級MySql
- 升級Spring Cloud到Finchley後的一點坑SpringCloud
- 從中產階級到一夜貧窮
- Deno從零到架構級系列(一)——開篇架構
- Mysql同步到GreenplumMySql
- 降級MySQL(參考MySQL官方文件)MySql
- MySQL複習筆記(05):MySQL表級鎖和行級鎖MySql筆記
- MySQL升級過程中的一些心得-2MySql
- MySQL升級過程中的一些心得-1MySql
- 技術分享 | 如何優雅地在 Windows 上從 MySQL 5.6 升級到 5.7WindowsMySql
- mysql同步es,秒級MySql
- MySQL:5.6 升級 5.7MySql
- mysql怎麼升級MySql
- mysql 從一個表中查詢,插入到另一個表中MySql
- MySQL 拷貝一個InnoDB分割槽表到另一個例項MySql
- mysql從一張表中取出資料插入到另一張表MySql
- ccproject升級到1135Project
- 你真的會用mysql行級鎖嗎?mysql 行級鎖全解析MySql
- 在?MySQL事務隔離級別瞭解一下?MySql
- MySQL e二級索引上的一致性讀MySql索引
- MySQL 5.7傳統複製到GTID線上切換(一主一從)MySql
- 從 SQL Server 到 MySQL (一):異構資料庫遷移ServerMySql資料庫
- Mysql鎖之行級鎖和表級意向鎖MySql
- oracle 10 rac 升級 10.2.0.1升級到10.2.0.5Oracle
- 升級到iOS 18、降級回iOS 17iOS