1、概述通常,從一個(gè)發(fā)布版本升級(jí)到另一個(gè)版本時(shí),我們建議按照順序來(lái)升級(jí)版本。例如,想要升級(jí) MySQL 3.23 時(shí),先升級(jí)到 MySQL 4.0,而不是直接升級(jí)到 MySQL 4.1 或 MySQL 5.0。 以下是在升級(jí) MySQL 時(shí)需要注意的事項(xiàng): 仔細(xì)閱讀一下升級(jí)的目標(biāo)版本的新特性和改變的特性,以及2個(gè)版本之間的不同特性 升級(jí)前一定要備份所有的數(shù)據(jù) 如果是在Windows平臺(tái)上升級(jí)MySQL,請(qǐng)閱讀附錄 "在Windows平臺(tái)上升級(jí)MySQL" 有些不同版本間的升級(jí)可能會(huì)涉及對(duì)授權(quán)表的修改,請(qǐng)尤其注意這個(gè)問(wèn)題,詳情請(qǐng)閱讀附錄 "升級(jí)授權(quán)表" ◆如果正在運(yùn)行著同步,請(qǐng)閱讀附錄 "升級(jí)同步" ◆如果之前運(yùn)行著MySQL-Max發(fā)布版本,想要升級(jí)到非MySQL-Max發(fā)布版本時(shí),就需要從 mysqld_safe 去掉啟動(dòng) mysqld-max 服務(wù)器的參數(shù) 在同一個(gè)發(fā)布系列版本的MySQL間,可以隨意拷貝格式文件和數(shù)據(jù)文件。如果在MySQL運(yùn)行過(guò)程中改變了字符集,就需要對(duì)每個(gè)MyISAM表執(zhí)行 "myisamchk -r -q --set-character-set=charset" 命令修復(fù)一下。否則的話,索引的排序可能不正確,因?yàn)樾薷牧俗址涂赡軙?huì)改變索引的順序。 通常情況下,升級(jí)到新版本不需要修改任何數(shù)據(jù)表。請(qǐng)檢查MySQL發(fā)布事項(xiàng)中提到的升級(jí)需要注意的地方,如果發(fā)現(xiàn)不能直接升級(jí)的話,就先用 mysqldump 將數(shù)據(jù)導(dǎo)出來(lái),然后再導(dǎo)回去。 如果擔(dān)心升級(jí)失敗,就先把舊版本的MySQL改個(gè)名字備份起來(lái),以備所需。 同時(shí),升級(jí)完之后可能還需要重新編譯跟MySQL相關(guān)的程序,因?yàn)樾掳姹镜念^文件和庫(kù)文件可能有改變了。 如果升級(jí)后發(fā)生問(wèn)題了,請(qǐng)先檢查是否使用了舊的my.cnf配置文件,可以通過(guò)執(zhí)行命令 "mysqld --print-defaults" 來(lái)打印出各種配置信息來(lái)確認(rèn)。 升級(jí)的時(shí)候最好也升級(jí)類似Perl的 DBD::mysql 模塊,同樣,對(duì)PHP和Python而言也是一樣。 2、從 MySQL 5.0 升級(jí)到 MySQL 5.1 從 5.0 升級(jí)到 5.1 的時(shí)候,必須要升級(jí)授權(quán)表。否則,可能某些存儲(chǔ)過(guò)程無(wú)法運(yùn)行。詳情請(qǐng)看附錄 "mysql_update MySQL升級(jí)時(shí)檢查數(shù)據(jù)表"。 以下是從 5.0 升級(jí)到 5.1 需要注意的事項(xiàng): 檢查所有的變化,尤其注意那些標(biāo)志為 "不兼容的變化" 的部分。詳情請(qǐng)看附錄 "mysql_update MySQL升級(jí)時(shí)檢查數(shù)據(jù)表" ◆可能某些發(fā)布版本會(huì)改變授權(quán)表的機(jī)制
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比嶗山網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式嶗山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋嶗山地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
1.停止原來(lái)的MySQL服務(wù)
2.備份原來(lái)數(shù)據(jù)庫(kù)的數(shù)據(jù)
3.卸載原來(lái)安裝的程序
4.安裝新版本的程序
5.數(shù)據(jù)還原
有兩種方法,一種方法使用mysql的check table和repair table 的sql語(yǔ)句,另一種方法是使用MySQL提供的多個(gè)myisamchk, isamchk數(shù)據(jù)檢測(cè)恢復(fù)工具。前者使用起來(lái)比較簡(jiǎn)便。推薦使用。
1. check table 和 repair table
登陸mysql 終端:
mysql -uxxxxx -p dbname
check table tabTest;
如果出現(xiàn)的結(jié)果說(shuō)Status是OK,則不用修復(fù),如果有Error,可以用:
repair table tabTest;
進(jìn)行修復(fù),修復(fù)之后可以在用check table命令來(lái)進(jìn)行檢查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2. myisamchk, isamchk
其中myisamchk適用于MYISAM類型的數(shù)據(jù)表,而isamchk適用于ISAM類型的數(shù)據(jù)表。這兩條命令的主要參數(shù)相同,一般新的系統(tǒng)都使用MYISAM作為缺省的數(shù)據(jù)表類型,這里以myisamchk為例子進(jìn)行說(shuō)明。當(dāng)發(fā)現(xiàn)某個(gè)數(shù)據(jù)表出現(xiàn)問(wèn)題時(shí)可以使用:
myisamchk tablename.MYI
進(jìn)行檢測(cè),如果需要修復(fù)的話,可以使用:
myisamchk -of tablename.MYI
關(guān)于myisamchk的詳細(xì)參數(shù)說(shuō)明,可以參見(jiàn)它的使用幫助。需要注意的時(shí)在進(jìn)行修改時(shí)必須確保MySQL服務(wù)器沒(méi)有訪問(wèn)這個(gè)數(shù)據(jù)表,保險(xiǎn)的情況下是最好在進(jìn)行檢測(cè)時(shí)把MySQL服務(wù)器Shutdown掉。
-----------------------------
另外可以把下面的命令放在你的rc.local里面啟動(dòng)MySQL服務(wù)器前:
[ -x /tmp/mysql.sock ] /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI
其中的/tmp/mysql.sock是MySQL監(jiān)聽(tīng)的Sock文件位置,對(duì)于使用RPM安裝的用戶應(yīng)該是/var/lib/mysql/mysql.sock,對(duì)于使用源碼安裝則是/tmp/mysql.sock可以根據(jù)自己的實(shí)際情況進(jìn)行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL數(shù)據(jù)庫(kù)存放的位置。
需要注意的時(shí),如果你打算把這條命令放在你的rc.local里面,必須確認(rèn)在執(zhí)行這條指令時(shí)MySQL服務(wù)器必須沒(méi)有啟動(dòng)!檢測(cè)修復(fù)所有數(shù)據(jù)庫(kù)(表)
1、升級(jí)是一件風(fēng)險(xiǎn)極高的任務(wù),備份重于一切。
2、了解新版本變更的信息(哪些不再兼容,不再支持哪些功能)。
1、確認(rèn)新版本是否有重大變更
2、注意 SQL mode 的變化,比如:MySQL5.7發(fā)生了SQL mode的變化,對(duì)不再支持的SQL mode,部分SQL會(huì)跑不通,可以清空SQL mode,跑完之后在設(shè)置SQL mode。
3、升級(jí)成功后,確認(rèn)業(yè)務(wù)SQL是否可以跑通,程序?qū)邮欠穸颊!?/p>
4、在升級(jí)完成之后,一定要在測(cè)試時(shí)使用和線上版本相同的程序,測(cè)試是否存在問(wèn)題。
5、存儲(chǔ)引擎的變化,比如:在未來(lái)的5.8版本,不再支持myisam 引擎。
6、注意字符集的亂碼問(wèn)題。
7、升級(jí)過(guò)程中多次啟動(dòng)建議加上 --skip-grant-tables和--skip-networking 參數(shù),來(lái)保證沒(méi)有任何的應(yīng)用連接,讓升級(jí)過(guò)程更加安全。
1. 下載 5.7.30 的 zip 包并解壓到新的目錄。
2. 安裝 Visual C++ 2012/2013(或更多版本)。
3. 停應(yīng)用,停止 5.6 實(shí)例(可以通過(guò)停服務(wù)來(lái)操作,停止服務(wù)前建議記錄一下 GTID 或 binlog file 和 position 位置),刪除服務(wù)。
4. 備份一份 5.6 實(shí)例的 datadir,包括 binlog(整個(gè)目錄 copy 到別的目錄存放)。
5. 拷貝 5.6 實(shí)例的 datadir 和 my.ini 到 5.7 實(shí)例 basedir 目錄,調(diào)整并優(yōu)化參數(shù)值(注意要確保路徑一致,確認(rèn)已開(kāi)啟 5.7 新特性相關(guān)參數(shù),如增強(qiáng)半同步、MTS 等)。
6. 修改系統(tǒng)環(huán)境變量,把可執(zhí)行路徑指向 5.7 實(shí)例的 basedir/bin。
7. 啟動(dòng) 5.7 實(shí)例,創(chuàng)建服務(wù)并啟動(dòng)。
8. 驗(yàn)證服務(wù)端、客戶端版本是否正確。
9. 確認(rèn)無(wú)誤后,執(zhí)行 mysql_upgrade 升級(jí)數(shù)據(jù)字典(會(huì)升級(jí)系統(tǒng)庫(kù):mysql,ps,sys,沒(méi)有會(huì)重建)。
10. 重啟實(shí)例。
11. 再次校驗(yàn) 5.7 的參數(shù),盡量保持與 5.6 的兼容,尤其要注意 sql_mode 的默認(rèn)值對(duì)業(yè)務(wù)的影響。
12. 清理 5.6 實(shí)例的 basedir 和 datadir 目錄(可選)。
13. 如果是主從環(huán)境,還要考慮 slave_net_timeout 參數(shù)默認(rèn)值改變帶來(lái)的影響(主庫(kù) error 日志中出現(xiàn) “ER_RPL_ZOMBIE_ENCOUNTERED” 的報(bào)錯(cuò))。
在 5.7.7 以前,該參數(shù)默認(rèn)是 3600s,之后改為了 60s,需要重新執(zhí)行 change master to 語(yǔ)句,并且顯式指定 master_heartbeat_period=xx,因?yàn)閺?5.7.4 開(kāi)始,只有執(zhí)行 reset slave 才能將其重置為默認(rèn)值(slave_net_timeout 值的一半)。另外提一句,也是從 5.7.4 開(kāi)始,執(zhí)行 change master to 語(yǔ)句時(shí),可以不用先停止復(fù)制線程了。
名稱欄目:mysql怎么升級(jí)版本 mysql升級(jí)版本方法
分享地址:http://vcdvsql.cn/article28/hpjocp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、定制網(wǎng)站、做網(wǎng)站、自適應(yīng)網(wǎng)站、標(biāo)簽優(yōu)化、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)