1. 程式人生 > >mysql資料遷移時資料庫版本不同

mysql資料遷移時資料庫版本不同

公司搭建了2臺伺服器, 準備把原先的伺服器撤下來, 需要把原伺服器上的資料庫遷移到新的伺服器上,但是現在的伺服器資料庫還是5.1版本的(買的別人的伺服器,他們裝好的mysql),但是舊伺服器的資料庫版本是5.5 的,從5.5把資料遷移至5.1,總是會遇到不相容的問題

為什麼會使用utf8mb4,因為utf8mb4才是真正的utf8編碼

“utf8”只支援每個字元最多三個位元組,而真正的 UTF-8 是每個字元最多四個位元組。

MySQL 一直沒有修復這個 bug,他們在 2010 年釋出了一個叫作“utf8mb4”的字符集,繞過了這個問題。

當然,他們並沒有對新的字符集廣而告之(可能是因為這個 bug 讓他們覺得很尷尬),以致於現在網路上仍然在建議開發者使用“utf8”,但這些建議都是錯誤的。

簡單概括如下:

  • MySQL 的“utf8mb4”是真正的“UTF-8”。

  • MySQL 的“utf8”是一種“專屬的編碼”,它能夠編碼的 Unicode 字元並不多。

    資料遷移方式1: 

    使用navicat ,資料庫上右擊,轉儲sql檔案,選擇資料和結構

            

    等他執行成功, 會儲存為一個.sql檔案

    然後在新的資料庫連線上新建連線,右擊執行sql檔案

    如果日誌為successfully,那麼沒問題,正常

方式2:

    目標伺服器上新建一個跟之前資料庫名一樣的資料庫,選擇工具,資料傳輸

    

    等他正常結束

方式3: 

    點選備份,新建備份,提取sql,然後到目標資料庫執行sql檔案即可

    

    

以上方式正常情況都是沒問題的,親自試過~

但是5.1不支援utf8mb4格式,使用navicat匯入資料的時候怎麼都導不進去,一個一個改吧,其實navicat可以批量修改替換Ctrl+F,點選替換,全部替換,OK

設計表,sql預覽,另存為,然後複製,在新資料庫中新建查詢,把語句複製過去,改一下,執行,即可

這樣就把utf8mb4換成utf8了,現在把資料庫結構複製了過來,下一步選擇資料同步,把資料同步到當前庫中

在資料庫連線上,選擇工具,資料同步

點選開始就可以了

這樣資料庫就遷移成功了