ERROR 1273 (HY000): Unknown collation: 'utf8' 錯誤的解決辦法

一、前言:

今天把本地數據庫導出的sql文件上傳到服務器上的數據庫的時候,出現了以下的錯誤。
改錯誤之處我的文件再導入到數據庫的時候,出現字符集不一樣的錯誤。

二、問題產生的原因

這是數據庫編碼的問題,查了網上的一些資料,出現這個問題的原因在於,wordpress4.2版本之後升級了數據庫,如果數據庫是mysql5.5以上的互相導入沒有問題,如果老網站是mysql5.5的,導入新網站是mysql5.5版本以下的,就會出現這個問題。
在這裏插入圖片描述

三、問題的解決辦法:
1、替換代碼

從老的數據庫中導出的數據庫文件,用vscode等代碼編輯器打開。
查找:utf8mb4_unicode_ci,全部替換爲:utf8_general_ci
查找:utf8mb4 全部替換爲 utf8

補充:vscode替換內容的快捷鍵爲crtl+h

在這裏插入圖片描述

2、替換字符集

1、通過下面的語句查看當前數據庫的編碼格式

SHOW VARIABLES LIKE 'character%';

2、然後把 'character_set_server '的編碼格式修改爲uft8,其它不同的也是,得到下面圖片一樣的之後,導出來的sql文件就能正確的執行了。

SET character_set_server = "utf8"

在這裏插入圖片描述

三、問題的分析:

通過導入和修改sql文件的過程中發現,有些文件能夠導入並且不報字符集的錯誤。之後經過對比數據庫中表的格式,以及sql文件中出現不符合要求的字符集。發現出現 utf8mb4 格式的字符集的地方是再 varchar 出現的地方,如果只有一些表能夠導入,那麼說明這些表中不存在 varchar 類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章