Tak jak w temacie taki błąd wyskakuje mi podczas próby insertu string'ów zawierających polskie znaki.
show variables like '%colla%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
Próbowałem zmieniać poprzez:
set collation_server = utf8_general_ci;
set collation_database = utf8_general_ci;
Jednakże to nic nie dawało, dodatkowo przy ponownym uruchomieniu znów wracało do stanu wcześniejszego(tabela wyżej).
show variables like '%charac%';
Tutaj też wkrada mi sie latin.
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
Tutaj próbowałem ustawić;
set character_set_database = utf8;
set character_set_server = utf8;
Niestety nijak to pomaga.
Następna próba wymuszenia utf'a na samej bazie:
alter database przychodnia character set utf8mb4 collate utf8mb4_unicode_ci;
Również nijak.
A jeśli wyłączyłem którąś flagę to dodawało mi wpisy typu.
Za?o?enie aparatu
Jako IDE używam DataGrip.
Jako Global Encoding mam ustawione UTF-8
Project Encoding <System Default: Utf-8>
========================================= edit
SELECT
`tables`.`TABLE_NAME`,
`collations`.`character_set_name`
FROM
`information_schema`.`TABLES` AS `tables`,
`information_schema`.`COLLATION_CHARACTER_SET_APPLICABILITY` AS `collations`
WHERE
`tables`.`table_schema` = DATABASE()
AND `collations`.`collation_name` = `tables`.`table_collation`
;
Poprzez tego selecta dowiedziałem się o niepoprawnym kodowaniu tylko tabel.
Rozwiązanie :
ALTER TABLE nazwa_tabeli CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE nazwa_tabeli DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Temat można zamknąć.