當初拿thinkphp5寫了一個項目,為了搞定emoji的問題,資料庫字元集用了utf8mb4,在當時的伺服器上跑的好好的。最近由於一些原因需要將整個系統轉移到新的伺服器上。但當導入原有資料庫,系統部署上去之後,試圖執行卻翻來覆去提示Can't initialize character set utf8mb4
。 。
我目前已經做過的一些嘗試(雖然我現在還沒處理好,但是一些思路我覺得其他人是可以藉鑑的)
檢查自己php系統資料庫連接訊息,正常
檢查伺服器版本,最開始發現安裝的是5.5.2,而支援utf8mb4的mysql版本需求是>=5.5.3,升級之後,問題依舊
#修改my.cnf
使utf8mb4變成連接預設字元集(可以參考這篇文章),問題依舊
嘗試伺服器端mysql client跑SET NAMES utf8mb4
,成功在mysql客戶端內執行,但問題依舊
嘗試修改對應庫的字元集,問題依舊(但不得不說我感覺這麼做沒什麼用,提示這個應該是卡在連接上了而不是訪問上)
我已經做瞭如上嘗試,但是問題還是依舊。不知道大家有什麼可以指導的地方?
如果你還是5.5版本,則需要重新cmake或指定字元集目錄。該問題官方文件:https://dev.mysql.com/doc/ref...