
🛠 MySQL-koodauksen vaihtaminen Laragonissa: latin1_swedish_ci:stä utf8mb4_unicode_ci:hin
Loit tietokannan phpMyAdminissa, asensit WordPressin, ja viikkoa myöhemmin huomasit tauluissasi luettavien merkkien sijaan sekalaista sotkua. Avaat asetukset ja näet latin1_swedish_ci. Jokainen, joka käyttää Laragonia Windowsilla, törmää tähän yllätykseen ennemmin tai myöhemmin.
Ongelma on siinä, että Laragonin oletuksena asentama MySQL-versio perii ikivanhan oletuksen: latin1 merkistöksi ja latin1_swedish_ci vertailuksi. Venäjän kielelle tämä on katastrofi: kyrilliset merkit kirjoitetaan kysymysmerkkeinä tai siansaksana, merkkijonojen lajittelu hajoaa ja lisäosat kaatuvat virheisiin.
Alla on kaksi muutosta yhteen tiedostoon, jotka ratkaisevat tämän ongelman pysyvästi. Tähän menee kolme minuuttia. Toimii Laragon 6:ssa, 5:ssä ja jopa vanhassa versiossa 4.
💡 Pikaopas:
- Avaa
my.iniLaragon-valikon kautta ja lisää kaksi riviä[mysqld]-osioon - Valitse
utf8mb4_unicode_cioptimaaliseksi vaihtoehdoksi WordPressille vuonna 2026 (ja kerromme miksi) - Tallenna tiedosto, käynnistä MySQL uudelleen ja varmista tulos phpMyAdminissa
- Bonus: miten vaihdat olemassa olevan tietokannan merkistökoodauksen ilman tietojen menetystä
Miksi oletusmerkistöllä on ylipäätään väliä
MySQL toimii monitasoisella periytymisjärjestelmällä: palvelin → tietokanta → taulu → sarake. Jos palvelintasolla on asetettu latin1_swedish_ci, jokainen uusi tietokanta perii sen, ellei luonnin yhteydessä toisin määritetä.
WordPressille tämä on kriittistä, koska:
- Ydin, teemat ja useimmat lisäosat tallentavat sisällön
utf8mb4-muodossa - Luodessaan tietokantaa automaattisesti
wp-config.php-tiedoston kautta WordPress EI ohita palvelimen oletusta - Palvelimen ja taulujen välinen merkistöristiriita tuottaa "epäselviä" virheitä:
???hallintapaneelissa, rikkinäisiä merkkejä JSON REST API:ssa, kaatumisia viennin yhteydessä
W3Techs-datan mukaan WordPress pyörittää 43,5% kaikista internetin verkkosivustoista, ja itse CMS on vaatinut utf8mb4-merkistöä versiosta 4.2 lähtien täyden emoji-tuen takaamiseksi. Laragon on yksi suosituimmista Windowsin paikallispalvelimista, mutta sen MySQL-versio toimitetaan taaksepäin yhteensopivuuden vuoksi konservatiivisella oletuksella. Tästä ristiriita johtuu.
Vaihe 1: Avaa my.ini Laragon-valikon kautta
Helpoin tapa päästä MySQL:n asetustiedostoon on Laragonin sisäänrakennetun valikon kautta:
- Napsauta Laragon-kuvaketta hiiren kakkospainikkeella ilmaisinalueella
- Valitse Menu → MySQL → my.ini

Muistio (tai oletuseditorisi) avautuu ja näyttää koko MySQL-asetustiedoston. Tiedosto on jaettu hakasulkeissa oleviin osioihin: [client], [mysqld] ja [mysqldump]. Meitä kiinnostaa [mysqld] (MySQL-taustapalvelun asetusosio).
Jos valikko ei jostain syystä avaa tiedostoa, etsi se käsin: C:\laragon\bin\mysql\<version>\my.ini. Laragon 6 -versioissa polku voi olla C:\laragon\bin\mysql\mysql-8.0.30-winx64\my.ini asennetusta versiosta riippuen.
Vaihe 2: Lisää kaksi riviä [mysqld]-osioon
Vieritä [mysqld]-osioon ja lisää seuraavat kaksi riviä loppuun (ennen seuraavaa osiota, jos sellainen on):
1 character_set_server = utf8mb4 2 collation_server = utf8mb4_unicode_ci
Mitä tässä tapahtuu:
character_set_server = utf8mb4käskee palvelinta käyttämään oletuksena UTF-8 Multilingual Version 4 -koodausta, joka tukee KAIKKIA Unicode-merkkejä, mukaan lukien emojit, kyrilliset aakkoset ja hieroglyfitcollation_server = utf8mb4_unicode_ciasettaa merkkijonojen vertailusäännön:_unicode_tarkoittaa "Unicode-standardin mukaan",_citarkoittaa kirjainkoosta riippumatonta vertailua
Sinun on lisättävä nämä rivit nimenomaan [mysqld]-osioon, ei [client]- tai [mysqldump]-osioon. Väärän osion käyttö on yleisin syy sille, miksi "mikään ei muuttunut".
Koko osion pitäisi näyttää muokkauksen jälkeen suunnilleen tältä:
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
Vaihe 3: Tallenna tiedosto ja käynnistä MySQL uudelleen
Tallenna my.ini (Ctrl+S) ja käynnistä MySQL uudelleen. Laragonissa tämä tehdään saman valikon kautta:
- Napsauta Laragon-kuvaketta hiiren kakkospainikkeella ilmaisinalueella
- Menu → MySQL → Stop
- Odota 3-5 sekuntia
- Menu → MySQL → Start
Vaihtoehtoisesti napsauta Menu → Restart, jolloin Laragon pysäyttää ja käynnistää kaikki palvelut kerralla.
Uudelleenkäynnistyksen jälkeen uudet tietokannat luodaan oletuksena utf8mb4_unicode_ci-merkistöllä. Olemassa olevia tietokantoja EI muuteta automaattisesti. Lue alla oleva "Usein kysytyt kysymykset" -osio oppiaksesi, miten olemassa oleva tietokanta muunnetaan.
Vaihe 4: Varmista tulos phpMyAdminissa
Avaa phpMyAdmin Laragon-valikon kautta (Menu → MySQL → phpMyAdmin) ja luo testitietokanta:
- Klikkaa "Create database"
- Anna mikä tahansa nimi
- Katso "Collation"-pudotusvalikkoa: sen pitäisi nyt olla oletuksena
utf8mb4_unicode_ci

Jos pudotusvalikko näyttää edelleen latin1_swedish_ci, varmista, että character_set_server- ja collation_server-rivit on lisätty [mysqld]-osioon (ei [client]-osioon) ja ettei parametrin nimen ja =-merkin välissä ole ylimääräisiä välilyöntejä.
Nopea varmistus SQL-kyselyllä (suorita phpMyAdminin SQL-välilehdellä):
1 SHOW VARIABLES LIKE 'character_set_server'; 2 SHOW VARIABLES LIKE 'collation_server';
Molempien muuttujien pitäisi palauttaa utf8mb4 ja utf8mb4_unicode_ci.
Mikä koodaus valita: vaihtoehtojen vertailu
MySQL-koodaukseen on kertynyt monia myyttejä, joten puretaan kolme ajankohtaista vaihtoehtoa ja yksi vanhentunut:
Koodaus | MySQL-versio | Emoji | Lajittelu | Yhteensopivuus | Tuomio |
|---|---|---|---|---|---|
| Mikä tahansa | ❌ Ei | Yksinkertaistettu, nopea | Maksimaalinen | Vanhentunut, älä käytä |
| 5.5.3+ | ✅ Kyllä | Unicode-standardi (UCA 4.0) | Erinomainen | Suositeltu Laragonille |
| 8.0+ | ✅ Kyllä | UCA 9.0, AI (aksenttitiedoton) | Vain MySQL 8+ | Moderni standardi, mutta rajallinen tuki |
| 5.5.3+ | ✅ Kyllä | Yksinkertaistettu | Erinomainen | Nopeuden ja tarkkuuden kompromissi |
Miksi suosittelemme utf8mb4_unicode_ci-merkistöä paikalliseen kehitykseen Laragonissa:**
- Laragon toimitetaan eri MySQL-versioilla (5.7:stä 8.0+:aan), ja
utf8mb4_0900_ai_ciilmestyi vasta MySQL 8.0:ssa ja puuttuu MariaDB:stä, joka tulee usein vaihtoehtoisten koontiversioiden mukana utf8mb4_unicode_citoimii kaikkialla MySQL 5.5.3:sta (2010) lähtien- Lajittelun laadun ero
unicode_ci- ja0900_ai_ci-vertailujen välillä on merkityksetön tyypilliselle WordPress-sivustolle - Jaetut hosting-paketit käyttävät usein MySQL 5.7:ää. Jos kehität paikallisesti
0900_ai_ci-vertailulla, mutta se puuttuu tuotannosta, saat virheen migraation aikana
Jos tiedät varmasti, että tuotantopalvelimesi käyttää MySQL 8.0+:aa ja paikallinen Laragonisi käyttää MySQL 8.0:aa, valitse utf8mb4_0900_ai_ci. Tämä on Oraclen suosittelema moderni standardi, jossa on parempi monikielisen lajittelun tuki.
Entä utf8_general_ci? Se oli ajankohtainen noin kymmenen vuotta sitten, kun utf8mb4 ei ollut vielä laajalti tuettu. Nykyään sillä on kaksi kohtalokasta puutetta: se ei voi tallentaa emojeja (WordPress käyttää niitä aktiivisesti hallintapaneelissa) ja se lajittelee laajennetut merkit väärin. Ei ole mitään syytä käyttää sitä vuonna 2026.
Video: miten MySQL-tietokannan koodaus vaihdetaan phpMyAdminin kautta
Tekstiohjeet ovat hyviä, mutta joskus on helpompi nähdä se kerran. Tämä 4 minuutin video näyttää koko prosessin olemassa olevan tietokannan koodauksen vaihtamisesta phpMyAdmin-käyttöliittymän kautta taulujen valinnasta lopulliseen varmistukseen:
⁉️🤔 Usein kysytyt kysymykset
Minulla on jo tietokanta, jossa on latin1_swedish_ci. Miten vaihdan sen koodauksen?
Turvallisin tapa on phpMyAdminin kautta. Valitse tietokanta vasemmalta, siirry "Operations"-välilehdelle, valitse "Collation"-lohkosta
utf8mb4_unicode_cija klikkaa "Go". phpMyAdmin luo ALTER-kyselyt jokaiselle taululle. Ennen tätä toimenpidettä varmista, että luot varmuuskopion: "Export"-välilehti → SQL-muoto → "Go".
Vaihdoin my.ini-tiedoston, käynnistin MySQL:n uudelleen, mutta phpMyAdmin näyttää edelleen latin1_swedish_ci. Mikä on vialla?
Kolme yleisintä syytä: (1) rivit lisättiin
[client]-osioon[mysqld]-osion sijaan. Tarkista, minkä hakasulkeissa olevan osion alla ne ovat. (2) MySQL ei käynnistynyt uudelleen. Avaa Windowsin Tehtävienhallinta ja varmista, ettämysqld.exe-prosessi katosi ja ilmestyi uudelleen. (3)my.ini-tiedostossa on useita[mysqld]-osioita. Näin käy joskus useiden Laragon-päivitysten jälkeen. Pidä vain yksi.
Kumpi on parempi WordPressille: utf8mb4_unicode_ci vai utf8mb4_general_ci?
WordPressille ero on minimaalinen.
utf8mb4_unicode_cilajittelee monikielisen sisällön tarkemmin (esimerkiksi saksan "ß" = "ss"), kun taasutf8mb4_general_cion hieman nopeampi suurilla tietomäärillä, mutta ero on millisekunneissa. Valitseunicode_ciäläkä murehdi siitä.
Voinko vain määrittää koodauksen wp-config.php-tiedostossa?
define('DB_CHARSET', 'utf8mb4')jadefine('DB_COLLATE', 'utf8mb4_unicode_ci')wp-config.php-tiedostossa vaikuttavat VAIN tauluihin, jotka WordPress itse luo asennuksen aikana. Palvelimen oletus pysyy muuttumattomana, ja mikä tahansa käsin phpMyAdminin kautta luotu tietokanta saalatin1_swedish_ci-merkistön. Siksimy.ini-tiedoston muokkaaminen on edelleen välttämätöntä.
Koodauksen vaihtamisen jälkeen osa sivuston tekstistä muuttui kysymysmerkeiksi. Onko tämä palautettavissa?
Kyllä, mutta sinun on edettävä varovasti. Kysymysmerkkejä ilmestyy, kun data on kirjoitettu
latin1-muodossa, mutta sitä luetaanutf8-muodossa. Ratkaisu: vie tietokanta--default-character-set=latin1-lipulla ja tuo se sitten--default-character-set=utf8mb4-lipulla. Tarkka komento riippuu MySQL-versiostasi, joten katso virallista dokumentaatiota.
Yhteenveto: mitä lisätä my.ini-tiedostoon juuri nyt
Jos käytät Laragonia paikalliseen WordPress-kehitykseen, alla olevat kaksi riviä ratkaisevat koodausongelman lopullisesti:
1 character_set_server = utf8mb4 2 collation_server = utf8mb4_unicode_ci
Tämä vaihtoehto toimii kaikissa MySQL-versioissa 5.5:stä 8.4:ään ja kaikissa nykyisissä MariaDB-koontiversioissa. Se tallentaa oikein kyrilliset aakkoset ja emojit eikä aiheuta yllätyksiä tietokantaa paikallisesta tuotantoon siirrettäessä riippumatta siitä, mikä hosting-palvelu pyörittää tuotantopalvelintasi.
Onko kysyttävää tietystä Laragon-versiosta tai epätyypillisestä konfiguraatiosta? Katso ketju Laragon-foorumilla, jossa kehittäjät keskustelevat koodauksen konfiguroinnin vivahteista, mukaan lukien Docker-koontiversiot ja mukautetut portit. Ja jos tämä artikkeli säästi sinulta illan, jaa se kollegoillesi, jotka myös painivat latin1_swedish_ci-merkistön kanssa.



