首頁  >  問答  >  主體

php - 關於`Can't initialize character set XXXX`的解決思路,求指導

當初拿thinkphp5寫了一個項目,為了搞定emoji的問題,資料庫字元集用了utf8mb4,在當時的伺服器上跑的好好的。最近由於一些原因需要將整個系統轉移到新的伺服器上。但當導入原有資料庫,系統部署上去之後,試圖執行卻翻來覆去提示Can't initialize character set utf8mb4。 。
我目前已經做過的一些嘗試(雖然我現在還沒處理好,但是一些思路我覺得其他人是可以藉鑑的)

  1. 檢查自己php系統資料庫連接訊息,正常

  2. 檢查伺服器版本,最開始發現安裝的是5.5.2,而支援utf8mb4的mysql版本需求是>=5.5.3,升級之後,問題依舊

  3. #修改my.cnf使utf8mb4變成連接預設字元集(可以參考這篇文章),問題依舊

  4. 嘗試伺服器端mysql client跑SET NAMES utf8mb4,成功在mysql客戶端內執行,但問題依舊

  5. 嘗試修改對應庫的字元集,問題依舊(但不得不說我感覺這麼做沒什麼用,提示這個應該是卡在連接上了而不是訪問上

我已經做瞭如上嘗試,但是問題還是依舊。不知道大家有什麼可以指導的地方?

PHP中文网PHP中文网2708 天前721

全部回覆(1)我來回復

  • 迷茫

    迷茫2017-06-13 09:23:30

    如果你還是5.5版本,則需要重新cmake或指定字元集目錄。該問題官方文件:https://dev.mysql.com/doc/ref...

    回覆
    0
  • 取消回覆