重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
今天就跟大家聊聊有關(guān)怎樣將MySQL 5.6.47升級(jí)到5.7.20,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)成立于2013年,先為大寧等服務(wù)建站,大寧等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為大寧企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
MySQL升級(jí)方式有兩種,一種叫In-Place Upgrade,另一種叫Logical Upgrade (邏輯升級(jí)方式)。
本文演示使用In-Place Upgrade升級(jí)MySQL。
MySQL升級(jí)方式有兩種,一種叫In-Place Upgrade,另一種叫Logical Upgrade (邏輯升級(jí)方式)。
Logical Upgrade:利用mysqldump來(lái)直接導(dǎo)出SQL文件,然后導(dǎo)入到新庫(kù)中,適應(yīng)于跨大版本的升級(jí)方案,做法相對(duì)安全,并能整理表中碎片。但如果有數(shù)據(jù)量較大的庫(kù)需要mysqldump導(dǎo)出,時(shí)間上的消耗就會(huì)很大,升級(jí)效率就會(huì)受到影響。
In-Place Upgrade:它的工作方法簡(jiǎn)單快速,就是直接替換掉原來(lái)版本MySQL的安裝目錄和my.cnf配置文件,利用mysql_upgrade腳本來(lái)完成系統(tǒng)表的升級(jí)。
本文演示使用In-Place Upgrade升級(jí)MySQL。
[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
需要將innodb_fast_shutdown參數(shù)設(shè)置為0
set global innodb_fast_shutdown=0;
注:innodb_fast_shutdown有0、1、2三個(gè)值。
參數(shù)值為0代表MySQL關(guān)閉,InnoDB需要完成所有的full purge和merge Insert buffer操作,這個(gè)過(guò)程需要一定的時(shí)間,有時(shí)可能會(huì)花上幾個(gè)小時(shí)。
參數(shù)值為1是該參數(shù)的默認(rèn)值,表示關(guān)閉MySQL時(shí)不完成full purge和Merge insert buffe操作,但是緩沖池中的臟頁(yè)還是會(huì)寫(xiě)到磁盤(pán)中。
參數(shù)值為2時(shí),表示既不完成full purge和Merge insert buffer操作,也不將緩沖池中的臟頁(yè)刷新到磁盤(pán),而是將日志寫(xiě)入日志文件中。
命令如下:
[root@source bin]# /usr/local/mysql/bin/mysqladmin -uroot -poracle123 shutdown
需要執(zhí)行unlink mysql命令,取消鏈接到MySQL 5.6.47版本的鏈接文件。
解壓新版本的MySQL軟件包,然后重新做鏈接并賦予MySQL權(quán)限。命令如下:
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
把MySQL5.6的配置文件替換成5.7版本的my.cnf。
注:在啟動(dòng)過(guò)程中,需要添加–skip-grant-tables和–skip-networking參數(shù),來(lái)保證沒(méi)有 任何的應(yīng)用連接,讓升級(jí)過(guò)程更加安全。
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables --skip-networking &
命令如下:
/usr/local/mysql/bin/mysql_upgrade
輸出結(jié)果:
[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]#
沒(méi)有報(bào)錯(cuò),表示系統(tǒng)表數(shù)據(jù)字典信息升級(jí)成功。
首先停掉MySQL服務(wù),命令如下:
/usr/local/mysql/bin/mysqladmin -uroot -poracle123 shutdown
然后正常啟動(dòng)MySQL服務(wù),命令如下:
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
說(shuō)明:正常啟動(dòng)MySQL數(shù)據(jù)庫(kù),不要使用–skip-grant-tables和-skip-networking參數(shù)。
目前己經(jīng)是MySQL5.7版本,證明升級(jí)成功:
[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
看完上述內(nèi)容,你們對(duì)怎樣將MySQL 5.6.47升級(jí)到5.7.20有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。