Stránka 1 z 1

Změna formátu MySQL z utf8 na utf8mb4? phpMyAdmin

Napsal: pon 14. říj 2024 8:22:07
od SGvagon
Zdravím,

všiml jsem si, že na mém fórum nelze psát do témat Emoji (SQL Error) . Našel jsem tento návod, který mi je zpřístupnil v příspěvcích https://www.phpbb.com/community/viewtopic.php?t=2340251 , tzn. předělání utf8 na utf8mb4 v phpbb_posts na post_text .

Bylo by možné nějak předělat celou databázi na utf8mb4 aniž bych někde udělal nějako závažnou chybu? V phpMyAdmin na záložce úpravy je ve spodní části možnost předělat databázi na jiné formátování, nicméně netuším co všechno mám zafajfkovat, aby fórum stále fungovalo.
phpMyAdmin_porovnani.png
phpMyAdmin_porovnani.png (8.29 KiB) Zobrazeno 49 x
Předem děkuji za odpověď. 😶 😕 .

Re: Změna formátu MySQL z utf8 na utf8mb4? phpMyAdmin

Napsal: úte 15. říj 2024 10:13:13
od SGvagon
Tak asi vyřešeno ruční úpravou databáze pomocí SQL příkazů. Zde jsem našel seznam, který se trochu lišil od mé databáze, tak jsem odebral a přidal položky, které v mé databázi jsou a aplikoval změny https://www.phpbb.com/community/viewtop ... #p14023271 :-) .

Výše uvedená funkce na screenshotu bohužel nefungovala, vždy se zasekla u velké phpbb_config tabulky s chybou #1071 Max key lenght is 1000 bytes.

Ještě jsem následně musel opravit Fulltext mysql vyhledávání, které vyhledávalo ještě v utf8 tabulkách v databázi a tudíž končilo opět SQL chybou. Tzn. v souboru includes/search/fulltext_mysql.php upravit řádky:

757

Kód: Vybrat vše

$alter[] = 'MODIFY post_subject varchar(255) COLLATE utf8_unicode_ci DEFAULT \'\' NOT NULL';
na

Kód: Vybrat vše

$alter[] = 'MODIFY post_subject varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT \'\' NOT NULL';

770

Kód: Vybrat vše

$alter[] = 'MODIFY post_text mediumtext COLLATE utf8_unicode_ci NOT NULL';
na

Kód: Vybrat vše

$alter[] = 'MODIFY post_text mediumtext COLLATE utf8mb4_unicode_ci NOT NULL';
Hotovo :-) . Emoji i vyhledávání již funguje v celém Phpbb forum ;-) .