序
Mysql8的默認(rèn)字符集為utf8mb4,排序規(guī)則為utf8mb4_0900_ai_ci,當(dāng)我們有需求要把Mysql8的數(shù)據(jù)導(dǎo)入到Mysql5.7時(shí),就會(huì)出現(xiàn)Mysql5.7不支持utf8mb4_0900_ai_ci的排序規(guī)則,那么我們可以有以下2中方法來(lái)解決。
修改xx.sql文件的字符集和排序規(guī)則
可以先把Mysql8的數(shù)據(jù)導(dǎo)出為sql腳本,然后再通過(guò)編輯器全量替換字符集和排序規(guī)則。這種方式適合不確定要導(dǎo)入哪個(gè)版本的Mysql,可以按需修改。
直接修改數(shù)據(jù)庫(kù)和表的字符集和排序規(guī)則
在我們開(kāi)發(fā)階段可能用的是Mysql8的數(shù)據(jù)庫(kù),但當(dāng)真正上線時(shí),提供的卻是Mysql的其他版本數(shù)據(jù)庫(kù),為了避免字符集和排序規(guī)則不匹配的問(wèn)題,我們可以把開(kāi)發(fā)用的Mysql8數(shù)據(jù)庫(kù)的字符集和排序規(guī)則與生產(chǎn)環(huán)境的數(shù)據(jù)庫(kù)版本兼容。
修改數(shù)據(jù)庫(kù)字符集和排序規(guī)則
1
2
|
-- database_name = 你的庫(kù)名 ALTER DATABASE `database_name` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; |
修改表字符集和排序規(guī)則
1
2
3
4
5
6
7
|
-- database_name = 你的庫(kù)名 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" |
執(zhí)行上述SQL后會(huì)得到修改表字符集和排序規(guī)則的SQL,我們復(fù)制出來(lái)執(zhí)行一遍就可以了。
通過(guò)Navicat將MySQL8.0導(dǎo)入到MySQL5.7
打開(kāi)Navicat,選中數(shù)據(jù)庫(kù),點(diǎn)擊工具–數(shù)據(jù)傳輸
點(diǎn)擊文件,選擇要導(dǎo)出的版本
打開(kāi).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 |
到此這篇關(guān)于Mysql8導(dǎo)入數(shù)據(jù)到Mysql5.7的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Mysql8導(dǎo)入數(shù)據(jù)到Mysql5.7內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://juejin.cn/post/7072557857966653448