序
Mysql8的默認字符集為utf8mb4,排序規則為utf8mb4_0900_ai_ci,當我們有需求要把Mysql8的數據導入到Mysql5.7時,就會出現Mysql5.7不支持utf8mb4_0900_ai_ci的排序規則,那么我們可以有以下2中方法來解決。
修改xx.sql文件的字符集和排序規則
可以先把Mysql8的數據導出為sql腳本,然后再通過編輯器全量替換字符集和排序規則。這種方式適合不確定要導入哪個版本的Mysql,可以按需修改。
直接修改數據庫和表的字符集和排序規則
在我們開發階段可能用的是Mysql8的數據庫,但當真正上線時,提供的卻是Mysql的其他版本數據庫,為了避免字符集和排序規則不匹配的問題,我們可以把開發用的Mysql8數據庫的字符集和排序規則與生產環境的數據庫版本兼容。
修改數據庫字符集和排序規則
1
2
|
-- database_name = 你的庫名 ALTER DATABASE `database_name` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; |
修改表字符集和排序規則
1
2
3
4
5
6
7
|
-- database_name = 你的庫名 SELECT concat( "ALTER TABLE `" , TABLE_NAME, "` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" ) AS `target` FROM information_schema.TABLES WHERE table_schema = "databse_name" |
執行上述SQL后會得到修改表字符集和排序規則的SQL,我們復制出來執行一遍就可以了。
通過Navicat將MySQL8.0導入到MySQL5.7
打開Navicat,選中數據庫,點擊工具–數據傳輸
點擊文件,選擇要導出的版本
打開.sql文件
1
2
3
4
|
utf8mb4替換為utf8 utf8mb4_0900_ai_ci替換為utf8_general_ci utf8_croatian_ci替換為utf8_general_ci utf8mb4_general_ci替換為utf8_general_ci |
到此這篇關于Mysql8導入數據到Mysql5.7的實現步驟的文章就介紹到這了,更多相關Mysql8導入數據到Mysql5.7內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://juejin.cn/post/7072557857966653448