共計 3094 個字符,預計需要花費 8 分鐘才能閱讀完成。
今天就跟大家聊聊有關怎樣將 MySQL 5.6.47 升級到 5.7.20,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
MySQL 升級方式有兩種,一種叫 In-Place Upgrade,另一種叫 Logical Upgrade (邏輯升級方式)。
本文演示使用 In-Place Upgrade 升級 MySQL。
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
看完上述內容,你們對怎樣將 MySQL 5.6.47 升級到 5.7.20 有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。