1 官方推薦的兩種升級(jí)方式:
創(chuàng)新互聯(lián)是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷,專業(yè)領(lǐng)域包括成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、電商網(wǎng)站制作開發(fā)、成都小程序開發(fā)、微信營(yíng)銷、系統(tǒng)平臺(tái)開發(fā),與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評(píng)估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!in-place upgrade
logical upgrade
2 升級(jí)之前:
備份所有數(shù)據(jù)庫(kù),包括系統(tǒng)庫(kù)mysql
[root@Darren1 ~]# mysqldump -uroot -p147258 -A -B -F --master-data=2 --events --single-transaction>/tmp/mysqlall.bak
下載5.7.16二進(jìn)制包,上傳解壓到/opt/mysql/目錄下
3升級(jí)演示:5.7.14升級(jí)到5.7.16
方法一: in-place upgrade:
設(shè)置數(shù)據(jù)庫(kù)關(guān)閉方式為slow方式,緩存中的數(shù)據(jù)在關(guān)閉之前全部落地:
[root@Darren1 data]# mysql -uroot -p147258 -e 'set global innodb_fast_shutdown=0;'
停止數(shù)據(jù)庫(kù)服務(wù):
[root@Darren1 data]# mysqladmin -uroot -p147258 shutdown
把之前5.7.14的軟鏈接/usr/local/mysql刪除,重新建立5.7.16軟鏈接:
[root@Darren1 local]# rm -rf /usr/local/mysql
[root@Darren1 local]# ln -s /opt/mysql/mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/mysql
啟動(dòng)數(shù)據(jù)庫(kù)服務(wù):
[root@Darren1 ~]# mysqld_safe --user=mysql --datadir=/data/mysql/mysql3306/data &
檢查所有庫(kù)中所有表的兼容性:
[root@Darren2 data]# mysql_upgrade -uroot -p147258
檢查結(jié)束后會(huì)在datadir目錄下生成mysql_upgrade_info文件,記錄了數(shù)據(jù)庫(kù)版本。
停止數(shù)據(jù)庫(kù)服務(wù):
[root@Darren1 data]# mysqladmin -uroot -p147258 shutdown
啟動(dòng)數(shù)據(jù)庫(kù)服務(wù):
[root@Darren1 ~]# mysqld_safe --user=mysql --datadir=/data/mysql/mysql3306/data &
把啟動(dòng)5.7.16的啟動(dòng)腳本mysql.server復(fù)制到/etc/init.d/下,替代舊的mysqld.
[root@Darren1 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
方法二:logical-upgrade
把mysql所有庫(kù)導(dǎo)出來(lái):
[root@Darren1 local]# mysqldump -uroot -p --add-drop-table --routines --events --all-databases --force >/tmp/data-for-upgrade.sql
停數(shù)據(jù)庫(kù)服務(wù):
[root@Darren1 local]# mysqladmin -uroot -p shutdown
創(chuàng)建新的目錄存放5.7.16:
[root@Darren1 ]# mkdir -p /data/mysql/mysql3307/{data,logs,tmp}
[root@Darren1 data]# chown -R mysql:mysql /data/mysql/mysql3307
刪除舊的軟鏈接,重新創(chuàng)建軟連接:
[root@Darren1 mysql]# ln -s /opt/mysql/mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/mysql
復(fù)制新的配置文件,并修改端口號(hào)為3307:
[root@Darren2 mysql3307]# cp /etc/my.cnf /data/mysql/mysql3307/my3307.cnf
[root@Darren2 mysql3307]# sed -i 's#3306#3307#g' my3307.cnf
指定配置文件初始化:
[root@Darren1 bin]# ./mysqld --initialize --defaults-file=/data/mysql/mysql3307/my3307.cnf
查看錯(cuò)誤日志,找到密碼:
[root@Darren1 bin]# cat /data/mysql/mysql3307/data/error.log |grep password
2016-11-24T14:35:59.219125Z 1 [Note] A temporary password is generated for root@localhost: kU+Ve&lo6a/j
指定3307配置文件,啟動(dòng)數(shù)據(jù)庫(kù)服務(wù):
[root@Darren1 bin]# ./mysqld_safe --defaults-file=/data/mysql/mysql3307/my3307.cnf &
指定sock文件登陸,輸入前面查看的密碼:
[root@Darren1 bin]# mysql -uroot -p -S /tmp/mysql3307.sock
Enter password:
重新修改密碼:
mysql>alter user user() identified by '147258';
導(dǎo)入之前備份數(shù)據(jù):
[root@Darren1 bin]# mysql -uroot -p -S /tmp/mysql3307.sock --force
檢查兼容性:
[root@Darren1 bin]# mysql_upgrade -uroot -p -S /tmp/mysql3307.sock
關(guān)閉服務(wù)器:
[root@Darren1 bin]# mysqladmin -uroot -p shutdown -S /tmp/mysql3307.sock
用5.7.16二進(jìn)制包重新建立3307實(shí)例,把舊的5.7.14版本的3306實(shí)例數(shù)據(jù)導(dǎo)出,然后導(dǎo)入3307實(shí)例中,測(cè)試3307實(shí)例確保沒(méi)有問(wèn)題,然后刪除3306實(shí)例,把3307實(shí)例端口改為3306.
4 降級(jí)演示:5.7.16降級(jí)5.7.14
方法一:in-place downgrade
設(shè)置數(shù)據(jù)庫(kù)關(guān)閉方式:
[root@Darren1 local]# mysql -uroot -p -e 'set global innodb_fast_shutdown=0;'
停止數(shù)據(jù)庫(kù)服務(wù):
[root@Darren1 local]# mysqladmin -uroot -p shutdown
刪除redolog文件:
[root@Darren1 data]# rm -rf /data/mysql/mysql3306/data/ib_logfile*
刪除5.7.16軟鏈接,并重新創(chuàng)建5.7.14軟連接:
[root@Darren1 local]# rm -rf /usr/local/mysql
[root@Darren1 local]# ln -s /opt/mysql/mysql-5.7.14-linux-glibc2.5-x86_64 /usr/local/mysql
啟動(dòng)數(shù)據(jù)庫(kù)服務(wù):
[root@Darren1 local]# mysqld_safe --user=mysql --datadir=/data/mysql/mysql3306/data &
降級(jí)檢查:
[root@Darren1 local]# mysql_upgrade -uroot -p
停止數(shù)據(jù)庫(kù)服務(wù),重新啟動(dòng)數(shù)據(jù)庫(kù)服務(wù):
[root@Darren1 local]# mysqladmin -uroot -p shutdown
[root@Darren1 local]# mysqld_safe --user=mysql --datadir=/data/mysql/mysql3306/data &
方法二:logical downgrade
備份降級(jí)前的所有庫(kù)和表:
[root@Darren1 ~]# mysqldump -uroot -p147258 --add-drop-table --routines --events --all-databases --force> /tmp/data-for-downgrade.sql
初始化:
[root@Darren1 bin]# ./mysqld --defaults-file=/data/mysql/mysql3307/my3307.cnf --initialize
[root@Darren1 bin]# ./mysqld_safe --defaults-file=/data/mysql/mysql3307/my3307.cnf &
[root@Darren1 bin]# mysql -uroot -p -S /tmp/mysql3307.sock
mysql>alter user user() identified by '147258';
[root@Darren1 bin]# ./mysql -uroot -p147258 -S /tmp/mysql3307.sock
[root@Darren1 bin]# ./mysql_upgrade -uroot -p147258 --skip-version-check -S /tmp/mysql3307.sock
以上步驟,部分省略,可參考5.7官方文檔。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。