
🛠 Laragoni MySQL kodeeringu muutmine: latin1_swedish_ci asemel utf8mb4_unicode_ci
Lõite andmebaasi phpMyAdmin kaudu, paigaldasite WordPressi ja nädal hiljem märkasite tabelites loetavate märkide asemel segapudru. Avate seaded ja näete latin1_swedish_ci. Igaüks, kes Windowsis Laragoniga töötab, puutub lõpuks selle üllatusega kokku.
Probleem on selles, et Laragoni poolt vaikimisi paigaldatav MySQL-i järk pärineb iidsest vaikesättest: märgistikuna latin1 ja võrdlusena latin1_swedish_ci. Vene keele jaoks on see katastroof: kirillitsa märgid kirjutatakse küsimärkide või mõttetu tekstina, stringide sortimine katkeb ja pluginad jooksevad vigadega kokku.
Allpool on kaks muudatust ühes failis, mis selle probleemi jäädavalt lahendavad. See võtab kolm minutit. Töötab Laragon 6, 5 ja isegi iidse versiooniga 4.
💡 Kiire ülevaade:
- Avage
my.iniLaragoni menüü kaudu ja lisage[mysqld]sektsiooni kaks rida - Valige WordPressi jaoks 2026. aastal optimaalne valik
utf8mb4_unicode_ci(ja selgitame, miks) - Salvestage fail, taaskäivitage MySQL ja kontrollige tulemust phpMyAdminis
- Boonus: kuidas muuta olemasoleva andmebaasi kodeeringut ilma andmeid kaotamata
Miks vaikimisi kodeering üldse oluline on
MySQL töötab mitmetasandilise pärimissüsteemiga: server → andmebaas → tabel → veerg. Kui serveri tasemel on määratud latin1_swedish_ci, pärivad kõik uued andmebaasid selle, kui loomisel ei määrata teisiti.
WordPressi jaoks on see kriitiline, sest:
- Tuum, teemad ja enamik pluginaid salvestavad sisu vormingus
utf8mb4 - Andmebaasi automaatsel loomisel
wp-config.phpkaudu EI kirjuta WordPress serveri vaikesätet üle - Serveri ja tabelite kodeeringute mittevastavus tekitab „ebaselgeid" vigu:
???halduspaneelis, katkised märgid JSON REST API-s, kokkujooksmised ekspordil
W3Techsi andmetel töötab WordPress 43,5% kõigist interneti veebisaitidest ja CMS ise on alates versioonist 4.2 nõudnud täieliku emotikonide toe jaoks utf8mb4. Laragon on üks populaarsemaid kohalikke servereid Windowsile, kuid selle MySQL-i järk tarnitakse tagasiühilduvuse huvides konservatiivse vaikesättega. Siit ka konflikt.
1. Samm: avage my.ini Laragoni menüü kaudu
Lihtsaim viis MySQL-i konfiguratsioonifailile ligi pääseda on Laragoni sisseehitatud menüü kaudu:
- Paremklõpsake Laragoni ikoonil süsteemses salves
- Valige Menu → MySQL → my.ini

Notepad (või teie vaikimisi redaktor) avaneb täieliku MySQL-i konfiguratsiooniga. Fail on jagatud nurksulgudes sektsioonideks: [client], [mysqld] ja [mysqldump]. Meid huvitab [mysqld] (MySQL-i deemoni seadete sektsioon).
Kui menüü mingil põhjusel faili ei ava, leidke see käsitsi: C:\laragon\bin\mysql\<version>\my.ini. Laragon 6 järkudes võib tee olla C:\laragon\bin\mysql\mysql-8.0.30-winx64\my.ini, sõltuvalt paigaldatud versioonist.
2. Samm: lisage [mysqld] sektsiooni kaks rida
Kerige [mysqld] sektsioonini ja lisage lõppu (enne järgmist sektsiooni, kui see on olemas) järgmised kaks rida:
1 character_set_server = utf8mb4 2 collation_server = utf8mb4_unicode_ci
Mis siin toimub:
character_set_server = utf8mb4ütleb serverile, et see kasutaks vaikimisi UTF-8 mitmekeelset versiooni 4 kodeeringut, mis toetab KÕIKI Unicode'i märke, sealhulgas emotikone, kirillitsat ja hieroglüüfecollation_server = utf8mb4_unicode_cimäärab stringide võrdlusreegli:_unicode_tähendab „vastavalt Unicode'i standardile",_citähendab tõstutundetut võrdlust
Peate need read lisama just [mysqld] sektsiooni, mitte [client] või [mysqldump] sektsiooni. Vale sektsiooni kasutamine on kõige levinum põhjus, miks „midagi ei muutunud".
Terve sektsioon pärast redigeerimist peaks välja nägema umbes selline:
1 [mysqld] 2 port=3306 3 socket=/tmp/mysql.sock 4 key_buffer_size=256M 5 max_allowed_packet=512M 6 character_set_server = utf8mb4 7 collation_server = utf8mb4_unicode_ci
3. Samm: salvestage fail ja taaskäivitage MySQL
Salvestage my.ini (Ctrl+S) ja taaskäivitage MySQL. Laragonis tehakse seda sama menüü kaudu:
- Paremklõpsake Laragoni ikoonil süsteemses salves
- Menu → MySQL → Stop
- Oodake 3-5 sekundit
- Menu → MySQL → Start
Alternatiivina klõpsake Menu → Restart ja Laragon peatab ning käivitab kõik teenused korraga.
Pärast taaskäivitust luuakse uued andmebaasid vaikimisi kodeeringuga utf8mb4_unicode_ci. Olemasolevaid andmebaase EI muudeta automaatselt. Olemasoleva andmebaasi teisendamise õpetuse leiate allpool olevast jaotisest „Korduma kippuvad küsimused".
4. Samm: kontrollige tulemust phpMyAdminis
Avage phpMyAdmin Laragoni menüü kaudu (Menu → MySQL → phpMyAdmin) ja looge testandmebaas:
- Klõpsake „Create database"
- Sisestage suvaline nimi
- Vaadake rippmenüüd „Collation": seal peaks nüüd vaikimisi olema
utf8mb4_unicode_ci

Kui rippmenüüs on endiselt latin1_swedish_ci, kontrollige, et read character_set_server ja collation_server oleksid lisatud [mysqld] sektsiooni (mitte [client]) ja et parameetri nime ja = märgi vahel ei oleks tühikuid.
Kiire kontroll SQL-päringuga (käivitage phpMyAdminis SQL-i vahekaardil):
1 SHOW VARIABLES LIKE 'character_set_server'; 2 SHOW VARIABLES LIKE 'collation_server';
Mõlemad muutujad peaksid tagastama vastavalt utf8mb4 ja utf8mb4_unicode_ci.
Millist kodeeringut valida: võimaluste võrdlus
MySQL-i kodeeringu kohta on kogunenud palju müüte, seega vaatleme kolme praegust ja ühte aegunud varianti:
Kodeering | MySQL-i versioon | Emotikonid | Sortimine | Ühilduvus | Otsus |
|---|---|---|---|---|---|
| Kõik | ❌ Ei | Lihtsustatud, kiire | Maksimaalne | Aegunud, ärge kasutage |
| 5.5.3+ | ✅ Jah | Unicode'i standard (UCA 4.0) | Suurepärane | Soovitatav Laragonile |
| 8.0+ | ✅ Jah | UCA 9.0, AI (aktsenditundetu) | Ainult MySQL 8+ | Kaasaegne standard, kuid piiratud tugi |
| 5.5.3+ | ✅ Jah | Lihtsustatud | Suurepärane | Kiiruse ja täpsuse kompromiss |
Miks me soovitame utf8mb4_unicode_ci Laragonis kohalikuks arenduseks:
- Laragon tarnitakse erinevate MySQL-i versioonidega (5.7 kuni 8.0+) ja
utf8mb4_0900_ai_ciilmus alles MySQL 8.0-s ning puudub MariaDB-s, mis on sageli alternatiivsetes järkudes utf8mb4_unicode_citöötab kõikjal alates MySQL 5.5.3 (2010)- Sortimise kvaliteedi erinevus
unicode_cija0900_ai_civahel on tüüpilise WordPressi saidi jaoks tühine - Jagatud hostingu paketid kasutavad sageli MySQL 5.7. Kui arendate kohapeal versiooniga
0900_ai_ci, kuid see puudub toodangus, saate migreerimisel veateate
Kui teate kindlalt, et teie toodanguserver kasutab MySQL 8.0+ ja teie kohalik Laragon kasutab MySQL 8.0, valige utf8mb4_0900_ai_ci. See on kaasaegne standard, mida Oracle soovitab ja millel on parem mitmekeelse sortimise tugi.
Aga utf8_general_ci? See oli asjakohane umbes kümme aastat tagasi, kui utf8mb4 ei olnud veel laialdaselt toetatud. Täna on sellel kaks saatuslikku viga: see ei suuda salvestada emotikone (WordPress kasutab neid aktiivselt halduspaneelis) ja sorteerib laiendatud märke valesti. 2026. aastal pole põhjust seda kasutada.
Video: kuidas muuta MySQL-i andmebaasi kodeeringut phpMyAdmini kaudu
Tekstijuhised on head, kuid mõnikord on lihtsam üks kord näha. See 4-minutiline video näitab täielikku protsessi olemasoleva andmebaasi kodeeringu muutmiseks phpMyAdmini liidese kaudu, alates tabelite valimisest kuni lõpliku kontrollini:
⁉️🤔 Korduma kippuvad küsimused
Mul on juba andmebaas kodeeringuga latin1_swedish_ci. Kuidas selle kodeeringut muuta?
Kõige ohutum viis on phpMyAdmini kaudu. Valige vasakult andmebaas, minge vahekaardile „Operations", valige plokis „Collation"
utf8mb4_unicode_cija klõpsake „Go". phpMyAdmin genereerib igale tabelile ALTER-päringud. Enne seda toimingut looge kindlasti varukoopia: vahekaart „Export" → SQL-vorming → „Go."
Muutsin faili my.ini, taaskäivitasin MySQL-i, kuid phpMyAdmin näitab endiselt latin1_swedish_ci. Milles viga?
Kolm kõige levinumat põhjust: (1) read lisati
[client]sektsiooni, mitte[mysqld]sektsiooni. Kontrollige, millise nurksulu sektsiooni all need on. (2) MySQL ei taaskäivitunud. Avage Windowsi tegumihaldur ja veenduge, etmysqld.exeprotsess kadus ja ilmus uuesti. (3) Failismy.inion mitu[mysqld]sektsiooni. See juhtub mõnikord pärast mitut Laragoni uuendust. Hoidke alles ainult üks.
Kumb on WordPressi jaoks parem: utf8mb4_unicode_ci või utf8mb4_general_ci?
WordPressi jaoks on erinevus minimaalne.
utf8mb4_unicode_cisorteerib mitmekeelset sisu täpsemalt (näiteks saksa „ß" = „ss"), samas kuiutf8mb4_general_cion suurte mahtude puhul veidi kiirem, kuid erinevus on millisekundites. Valigeunicode_cija ärge muretsege.
Kas ma võin lihtsalt määrata kodeeringu failis wp-config.php?
define('DB_CHARSET', 'utf8mb4')jadefine('DB_COLLATE', 'utf8mb4_unicode_ci')failiswp-config.phpmõjutavad AINULT neid tabeleid, mille WordPress ise paigaldamise ajal loob. Serveri vaikesäte jääb muutumatuks ja iga käsitsi phpMyAdmini kaudu loodud andmebaas saab kodeeringulatin1_swedish_ci. Seetõttu on failimy.iniredigeerimine endiselt vajalik.
Pärast kodeeringu muutmist muutus osa saidi tekstist küsimärkideks. Kas see on pöörduv?
Jah, kuid peate toimima ettevaatlikult. Küsimärgid ilmuvad siis, kui andmed kirjutati kodeeringus
latin1, kuid neid loetakse kuiutf8. Lahendus: eksportige andmebaas lipuga--default-character-set=latin1, seejärel importige lipuga--default-character-set=utf8mb4. Täpne käsk sõltub teie MySQL-i versioonist, seega vaadake ametlikku dokumentatsiooni.
Kokkuvõte: mida kohe faili my.ini lisada
Kui kasutate Laragoni kohalikuks WordPressi arenduseks, lahendavad allolevad kaks rida kodeeringuprobleemi lõplikult:
1 character_set_server = utf8mb4 2 collation_server = utf8mb4_unicode_ci
See valik töötab kõigis MySQL-i versioonides 5.5 kuni 8.4 ja kõigis praegustes MariaDB järkudes. See salvestab korrektselt kirillitsat, emotikone ega tekita üllatusi andmebaasi migreerimisel kohalikust keskkonnast toodangusse, olenemata sellest, millisel hostingul teie toodanguserver töötab.
Küsimusi konkreetse Laragoni versiooni või mittestandardse konfiguratsiooni kohta? Vaadake teemat Laragoni foorumis, kus arendajad arutavad kodeeringu seadistamise nüansse, sealhulgas Dockeri järke ja kohandatud porte. Ja kui see artikkel säästis teile ühe õhtu, jagage seda kolleegidega, kes samuti latin1_swedish_ci-ga hädas on.



