下文主要給大家?guī)怼甀n Place’ 幫助MySQL5.0直接升級(jí)至5.7,希望這些內(nèi)容能夠帶給大家實(shí)際用處,這也是我編輯‘In Place’ 幫助MySQL5.0直接升級(jí)至5.7這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。
西峽網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,西峽網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為西峽近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的西峽做網(wǎng)站的公司定做!
'In Place' 升級(jí)比'Dump'升級(jí)要快,因?yàn)槟闶∪チ藢?dǎo)入數(shù)據(jù)的步驟。這樣節(jié)省了時(shí)間,但升級(jí)前的備份就更加重要,因?yàn)槟憔褪窃谠寄夸浬蠄?zhí)行升級(jí)操作。你使用相同的數(shù)據(jù)文件,你就不能使用一些需要重建數(shù)據(jù)庫才能使用的新功能,比如創(chuàng)建undo tablespaces(在5.6.3版本引入)或?qū)⒁呀?jīng)存在的表改到獨(dú)立表空間中(innodb_file_per_table 在5.6.6開始支持)。
我使用如下步驟進(jìn)行升級(jí):
啟動(dòng)5.0.96版本實(shí)例,導(dǎo)入sakila schema數(shù)據(jù)。為了簡(jiǎn)單,使用 --no-defaults。
$ cd <mysql 5.0.96 basedir> $ ./scripts/mysql_install_db --no-defaults --datadir=<DATADIR> --basedir=. $ ./bin/mysqld_safe --no-defaults --datadir=<DATADIR> --basedir=. --port=<PORT> --socket=<SOCKET> & $ ./bin/mysql -uroot --socket=<SOCKET> --execute="create database sakila;" $ ./bin/mysql -uroot --socket=<SOCKET> --execute="source sakila-schema.sql" --database=sakila $ ./bin/mysql -uroot --socket=<SOCKET> --execute="source sakila-data.sql" --database=sakila
關(guān)閉數(shù)據(jù)庫服務(wù)。這是你備份數(shù)據(jù)庫的好時(shí)間。然后,進(jìn)入新版本MySQL的文件夾,啟動(dòng)數(shù)據(jù)庫。使用相同的數(shù)據(jù)目錄,所以你的所有數(shù)據(jù)都在<DATADIR>中
$ cd <mysql 5.0.96 basedir> $ ./bin/mysqladmin -uroot --socket=<SOCKET> shutdown $ cd <mysql 5.7.9 basedir> $ ./bin/mysqld_safe --no-defaults --datadir=<DATADIR> --basedir=. --port=< PORT> --socket=<SOCKET> --skip-grant-tables &
請(qǐng)注意,當(dāng)?shù)谝淮螁?dòng)5.7版本數(shù)據(jù)庫時(shí),必須使用 --skip-grant-tables。
運(yùn)行 mysql_upgrade。這樣會(huì)升級(jí)所有的系統(tǒng)表和檢查用戶庫。
$ ./bin/mysql_upgrade -uroot --socket=<SOCKET>
導(dǎo)入幫助表(可選)
$ ./bin/mysql -uroot --socket=<SOCKET> --execute="source ./share/fill_help_tables.sql" mysql
重啟MySQL服務(wù)
$ ./bin/mysqladmin -uroot --socket=<SOCKET> shutdown $ ./bin/mysqld_safe --no-defaults --datadir=<DATADIR> --basedir=. --port=<PORT> --socket=<SOCKET> &
運(yùn)行mysqlcheck檢查數(shù)據(jù)庫狀態(tài)
$ ./bin/mysqlcheck -uroot --socket=<SOCKET> --all-databases
如果從5.0.96升級(jí),這種升級(jí)方法可能需要重建一些表或觸發(fā)器。在本文使用的sakila 條件下,我收到了下面的警告信息:
Warning : Triggers for table `sakila`.`customer` have no creation context Warning : Triggers for table `sakila`.`film` have no creation context Warning : Triggers for table `sakila`.`payment` have no creation context Warning : Triggers for table `sakila`.`rental` have no creation context
由于觸發(fā)器存儲(chǔ)的元數(shù)據(jù)的更改,需要重載。我使用下面的步驟重建觸發(fā)器:
使用mysqldump導(dǎo)出觸發(fā)器
$ ./bin/mysqldump --socket=<SOCKET> -uroot --triggers --no-create-db --no-data --no-create-info --all-databases > addtriggers.sql
生成一個(gè)sql去刪掉存在的觸發(fā)器。排除sys庫,因?yàn)樯厦娴膍ysqldump不會(huì)導(dǎo)出sys庫中的觸發(fā)器。
mysql> SELECT CONCAT('DROP TRIGGER ', TRIGGER_SCHEMA, '.', TRIGGER_NAME, ';') FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_schema not in ('sys') INTO OUTFILE 'droptriggers.sql';
刪掉存在的觸發(fā)器
$ ./bin/mysql --socket=<SOCKET> -uroot --execute="source droptriggers.sql"
重載觸發(fā)器
$ ./bin/mysql --socket=<SOCKET> -uroot --execute="source addtriggers.sql"
運(yùn)行mysqlcheck
$ ./bin/mysqlcheck -uroot --socket=<SOCKET> --all-databases
使用上面的步驟從5.0.96、5.1.73、5.5.46和5.6.27 升級(jí)到5.7.9,均是成功的。使用mysqlcheck,統(tǒng)計(jì)所有庫的表、列和程序的數(shù)量,運(yùn)行基礎(chǔ)的select/insert/update/delete 語句并執(zhí)行、調(diào)用用戶函數(shù)和存儲(chǔ)過程來進(jìn)行驗(yàn)證。
(注:在這篇文章寫的時(shí)候,還不支持5.5到5.7版本的復(fù)制,在5.7.13版本時(shí),修復(fù)了該bug)
對(duì)于以上關(guān)于‘In Place’ 幫助MySQL5.0直接升級(jí)至5.7,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請(qǐng)繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會(huì)喜歡上這些內(nèi)容的。
本文標(biāo)題:‘InPlace’幫助MySQL5.0直接升級(jí)至5.7
文章地址:http://aaarwkj.com/article4/pdesie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、外貿(mào)建站、手機(jī)網(wǎng)站建設(shè)、面包屑導(dǎo)航、全網(wǎng)營(yíng)銷推廣、
聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)