Grafana, MySQL и кодировка

Имеем ошибку в дашборде

t=2021-08-24T14:39:09+0300 lvl=eror msg="query error" logger=tsdb.mysql err="Error 1267: Illegal mix of collations (utf8mb4_unicode_ci,COERCIBLE) and (utf8mb4_0900_ai_ci,COERCIBLE) for operation '='"
t=2021-08-24T14:39:09+0300 lvl=eror msg="query error" logger=tsdb.mysql err="Error 1267: Illegal mix of collations (utf8mb4_unicode_ci,COERCIBLE) and (utf8mb4_0900_ai_ci,COERCIBLE) for operation '='"
t=2021-08-24T14:39:09+0300 lvl=eror msg="query error" logger=tsdb.mysql err="Error 1267: Illegal mix of collations (utf8mb4_unicode_ci,COERCIBLE) and (utf8mb4_0900_ai_ci,COERCIBLE) for operation '='"
t=2021-08-24T14:39:09+0300 lvl=eror msg="query error" logger=tsdb.mysql err="Error 1267: Illegal mix of collations (utf8mb4_unicode_ci,COERCIBLE) and (utf8mb4_0900_ai_ci,COERCIBLE) for operation '='"
t=2021-08-24T14:39:10+0300 lvl=eror msg="query error" logger=tsdb.mysql err="Error 1267: Illegal mix of collations (utf8mb4_unicode_ci,COERCIBLE) and (utf8mb4_0900_ai_ci,COERCIBLE) for operation '='"

Illegal mix of collations (utf8mb4_unicode_ci,COERCIBLE) and (utf8mb4_0900_ai_ci,COERCIBLE) for operation ‘='”

Ищем таблицы в которых collation отличается от utf8mb4_unicode_ci, т.е. utf8mb4_0900_ai_ci. Это артефакт от непростого переезда системы. Ищем только для схемы db_19:

SELECT table_schema, table_name, column_name, character_set_name, collation_name
  FROM information_schema.columns
 WHERE collation_name = 'utf8mb4_0900_ai_ci' AND TABLE_SCHEMA = 'db_19';

Получили результат список таблиц и конвертируем их:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE 'utf8mb4_unicode_ci';
Close Menu