bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

‘InPlace’幫助MySQL5.0直接升級至5.7

下文主要給大家帶來‘In Place’ 幫助MySQL5.0直接升級至5.7,希望這些內容能夠帶給大家實際用處,這也是我編輯‘In Place’ 幫助MySQL5.0直接升級至5.7這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

西峽網站建設公司成都創新互聯公司,西峽網站設計制作,有大型網站制作公司豐富經驗。已為西峽近千家提供企業網站建設服務。企業網站搭建\成都外貿網站建設公司要多少錢,請找那個售后服務好的西峽做網站的公司定做!

'In Place' 升級比'Dump'升級要快,因為你省去了導入數據的步驟。這樣節省了時間,但升級前的備份就更加重要,因為你就是在原始目錄上執行升級操作。你使用相同的數據文件,你就不能使用一些需要重建數據庫才能使用的新功能,比如創建undo tablespaces(在5.6.3版本引入)或將已經存在的表改到獨立表空間中(innodb_file_per_table 在5.6.6開始支持)。

我使用如下步驟進行升級:

  1. 啟動5.0.96版本實例,導入sakila schema數據。為了簡單,使用 --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
  2. 關閉數據庫服務。這是你備份數據庫的好時間。然后,進入新版本MySQL的文件夾,啟動數據庫。使用相同的數據目錄,所以你的所有數據都在<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  &

    請注意,當第一次啟動5.7版本數據庫時,必須使用 --skip-grant-tables。

  3. 運行 mysql_upgrade。這樣會升級所有的系統表和檢查用戶庫。

    $ ./bin/mysql_upgrade -uroot --socket=<SOCKET>
  4. 導入幫助表(可選)

    $ ./bin/mysql -uroot --socket=<SOCKET> --execute="source ./share/fill_help_tables.sql" mysql
  5. 重啟MySQL服務

    $ ./bin/mysqladmin -uroot --socket=<SOCKET> shutdown
    $ ./bin/mysqld_safe --no-defaults --datadir=<DATADIR> --basedir=. 
    --port=<PORT> --socket=<SOCKET> &
  6. 運行mysqlcheck檢查數據庫狀態

    $ ./bin/mysqlcheck -uroot --socket=<SOCKET> --all-databases

如果從5.0.96升級,這種升級方法可能需要重建一些表或觸發器。在本文使用的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

由于觸發器存儲的元數據的更改,需要重載。我使用下面的步驟重建觸發器:

  1. 使用mysqldump導出觸發器

    $ ./bin/mysqldump --socket=<SOCKET> -uroot --triggers --no-create-db --no-data --no-create-info --all-databases > addtriggers.sql
  2. 生成一個sql去刪掉存在的觸發器。排除sys庫,因為上面的mysqldump不會導出sys庫中的觸發器。

    mysql> SELECT CONCAT('DROP TRIGGER ', TRIGGER_SCHEMA, '.', 
                     TRIGGER_NAME, ';')
              FROM INFORMATION_SCHEMA.TRIGGERS
              WHERE trigger_schema not in ('sys') 
              INTO OUTFILE 'droptriggers.sql';
  3. 刪掉存在的觸發器

    $ ./bin/mysql --socket=<SOCKET> -uroot --execute="source droptriggers.sql"
  4. 重載觸發器

    $ ./bin/mysql --socket=<SOCKET> -uroot --execute="source addtriggers.sql"
  5. 運行mysqlcheck

    $ ./bin/mysqlcheck -uroot --socket=<SOCKET> --all-databases

使用上面的步驟從5.0.96、5.1.73、5.5.46和5.6.27 升級到5.7.9,均是成功的。使用mysqlcheck,統計所有庫的表、列和程序的數量,運行基礎的select/insert/update/delete 語句并執行、調用用戶函數和存儲過程來進行驗證。

(注:在這篇文章寫的時候,還不支持5.5到5.7版本的復制,在5.7.13版本時,修復了該bug)

對于以上關于‘In Place’ 幫助MySQL5.0直接升級至5.7,大家是不是覺得非常有幫助。如果需要了解更多內容,請繼續關注我們的行業資訊,相信你會喜歡上這些內容的。

本文標題:‘InPlace’幫助MySQL5.0直接升級至5.7
文章地址:http://vcdvsql.cn/article4/pdesie.html

成都網站建設公司_創新互聯,為您提供企業建站、外貿建站、手機網站建設、面包屑導航、全網營銷推廣

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站建設網站維護公司