高版本數據庫sql文件導入低版本數據庫問題解決(mysql)


今天,部署測試環境,遷移數據庫數據時,發生了以下問題:

公司的數據庫mysql8.0版本,而我測試環境的數據庫則是5.7版本

從公司導出的數據庫sql文件,導入測試環境數據庫時發生了報錯

以下是本人一系列的解決方法

第一步:

使用Navicat工具

 

 

 

 

 

 

 

 

 

此時,我們將上面導出的文件,導入我們測試環境的數據庫,如下:

 

 

運行后發現報錯了,我們看一下報錯信息

 

原因是數據庫排序規則的問題,MySQL 5.7使用的默認為utf8mb4_unicode_ci,但是從MySQL8.0開始使用的已經改成utf8mb4_0900_ai_ci

解決方法:

打開sql文件,把所有的utf8mb4_0900_ai_ci替換成utf8mb4_unicode_ci

 

 

最后我們重新導入試試:

 

導入成功,問題解決!!!

補充一點:期間還遇到一個問題

報錯內容:

1153 - Got a packet bigger than 'max_allowed_packet' bytes

原因:MySQL默認讀取執行的SQL文件最大為16M,我這個文件是50多M的,所以出現了報錯

解決方法:

找到服務器mysql安裝目錄下的my.cnf文件,一般會在/etc/my.cnf,/etc/mysql/my.cnf。如果找不到,可以用find命令查找

find / -name my.cnf

編輯文件,在文件內[mysqld]下面加上max_allowed_packet=400M

保存文件,並重啟mysql

service mysql restart

重啟后即可解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM