Historycznie MySQL i jego pochodne u?ywa?y 'utf8' jako aliasu dla utf8mb3 - 3-bajtowej implementacji standardu UTF8 stworzonej przez MySQL, kt¨®ra jest 4-bajtowa. Pocz?wszy od MySQL 8.0.28 i MariaDB 10.6.1, zestaw znak¨®w 'utf8mb3' jest przestarza?y i w pewnym momencie jego wsparcie zostanie wycofane, podczas gdy 'utf8' stanie si? odniesieniem do 'utf8mb4'. Od Áú»¢¶Ä²© 6.0, 'utf8mb4' jest wspierane. Aby unikn?? przysz?ych problem¨®w, zaleca si? u?ywanie 'utf8mb4'. Inn? zalet? przej?cia na 'utf8mb4' jest wsparcie dla dodatkowych znak¨®w Unicode.
Poniewa? wersje przed Áú»¢¶Ä²© 6.0 nie obs?uguj? utf8mb4, upewnij si?, ?e najpierw zaktualizujesz serwer Áú»¢¶Ä²© i schemat bazy danych do 6.0.x przed wykonaniem konwersji do utf8mb4.
1. Sprawd? zestaw znak¨®w i porz?dek sortowania bazy danych.
Na przyk?ad:
mysql> SELECT @@character_set_database, @@collation_database;
+--------------------------+----------------------+
| @@character_set_database | @@collation_database |
+--------------------------+----------------------+
| latin2 | latin2_general_ci |
+--------------------------+----------------------+
Albo:
mysql> SELECT @@character_set_database, @@collation_database;
+--------------------------+----------------------+
| @@character_set_database | @@collation_database |
+--------------------------+----------------------+
| utf8 | utf8_bin |
+--------------------------+----------------------+
Jak wida?, zestaw znak¨®w to nie'utf8mb4' i porz?dek sortowania to nie 'utf8mb4_bin', wi?c musimy to naprawi?.
2. Zatrzymaj Áú»¢¶Ä²©.
3. Stw¨®rz kopi? zapasow? bazy danych!
4. Napraw zestaw znak¨®w i porz?dek sortowania na poziomie bazy danych:
Naprawione warto?ci:
mysql> SELECT @@character_set_database, @@collation_database;
+--------------------------+----------------------+
| @@character_set_database | @@collation_database |
+--------------------------+----------------------+
| utf8mb4 | utf8mb4_bin |
+--------------------------+----------------------+
5. Za?aduj skrypt aby naprawi? zestaw znak¨®w i porz?dek sortowania na poziomie tabel i kolumn:
6. Wykonaj skrypt:
SET @ZABBIX_DATABASE = '<twoja nazwa bazy danych>';
If MariaDB ¡ú set innodb_strict_mode = OFF;
CALL zbx_convert_utf8();
If MariaDB ¡ú set innodb_strict_mode = ON;
drop procedure zbx_convert_utf8;
Nale?y pami?ta?, ?e 'utf8mb4' mo?e zu?ywa? nieco wi?cej miejsca na dysku.
7. Je?li nie wyst?pi?y b??dy - mo?esz utworzy? kopi? zapasow? bazy danych z naprawion? baz?.
8. Uruchom Áú»¢¶Ä²©.