記一次MySQL字符集衝突導致的報錯

2021-09-19 10:31:27 字數 816 閱讀 5076

yii2檢視日誌發現報錯

[error][yii\db\exception] exception 'pdoexception' with message    'sqlstate[hy000]: general error: 1267 illegal mix of collations (latin1_swedish_ci,implicit) and (utf8_general_ci,coercible) for operation '='' in /path/to/vendor/yiisoft/yii2/db/command.php:837
show variables like 'character_set_%';
然後再輸入

show variables like 'collation_%';
發現結果集裡面很亂,utf8和latin都有。恍然大悟。

在報錯之前,剛剛新增yii的rbac的元件模組mdm-admin,我是用了他現有的mysql表結構直接建表,但是他的這個create table語句都沒有設定charset,原有建表的charsetcollate是utf8,最近建的幾個表預設都是latin神馬的,所以應該是這裡衝突了。

重新建表,create table語句加上

charset=utf8 collate=utf8_unicode_ci;
完美解決。

參考

記一次Redis bitmap導致的miss問題

redis bitmaps 基礎概念 redis 記憶體淘汰機制 大致需求 指令碼批量匯入使用者資料到redis中,使用bitmap標記使用者是否在匯入的白名單中。使用者量級 億。key使用了分片處理,把key分成了10w個,每個key占用 1億 10w 1000 個bit。理想是key1用於標記u...

記一次Orika導致的OOM

有乙個專案執行一段時間後就會出現oom,下面梳理下尋找問題根源的方法 某一天,乙個好久沒動過的服務崩掉了,top檢視程序占用cpu高達700 按照top,jstack一條龍查詢導致異常的執行緒 這裡沒看到什麼異常,把堆檔案dump到本地進行分析 看到hashmap將近佔了記憶體大小的50 開始尋找專...

mysql安裝一次 記一次mysql安裝

mysql 分為安裝版和壓縮版 2.安裝 2.1 解壓得到 mysql 8.0.15 winx64 資料夾 2.2 在mysql 8.0.15 winx64 資料夾下,新建配置檔案my.ini,內容 如下 mysqld 設定3306埠 port 3306 設定mysql的安裝目錄,這裡是唯一你需要改...