解決 Mysql2::Error: Incorrect string value 錯誤

這是什麼錯誤?你正要輸入的資料編碼並不符合資料表的編碼,可能發生在任何需要和資料庫連線的程式上(例如:Redmine)。

怎麼解決?

在 Stackoverflow 翻到這個解答,這會將任何 utf8 編碼的資料庫轉換成 utf8_general_ci,但你需要先找出編碼不是 utf8_general_ci 的資料庫,然後在 Shell 執行下列指令。請記得自行替換資料庫名稱、帳號、密碼

DB="資料庫名稱"  
(
    echo 'ALTER DATABASE `'"$DB"'` CHARACTER SET utf8 COLLATE utf8_general_ci;'
    mysql --user=資料庫帳號 --password=資料庫密碼 "$DB" -e "SHOW TABLES" --batch --skip-column-names \
    | xargs -I{} echo 'ALTER TABLE `'{}'` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;'
) \
| mysql --user=資料庫帳號 --password=資料庫密碼 "$DB"

圖示來源:Noun project Database By Creative Stall