Přeskočit na obsah
Tech-Blog Chatujme.cz Chatujme.cz
Programování

MySQL 26.10 obslouží REST rozhraní přímo ze serveru, bez MySQL Routeru

Oracle vydal 20. října MySQL 26.10.0. Služba MySQL REST Service v něm nově běží jako komponenta přímo v databázovém serveru, dosud k ní byl potřeba samostatný proces MySQL Router. V replikovaném nasazení ale komponenta zvládne jen jednu běžící instanci a při výpadku sama nepřepne.

· 26 zhlédnutí

Černé okno terminálu s klientem mysql, který hlásí server MySQL 8.0.17 Community a vypisuje tabulky databáze test
Klient mysql připojený k serveru MySQL Community. Foto: H@r@ld, Wikimedia Commons (volné dílo)

Oracle vydal 20. října 2026 MySQL 26.10.0. Hlavní novinka stojí v poznámkách k vydání mezi komponentami: MySQL REST Service, zkráceně MRS, umí běžet přímo uvnitř databázového serveru. Dosud pro ni byl potřeba samostatný proces MySQL Router. Týž den vyšly opravné verze 8.4.13 a 9.7.4 pro řady s dlouhou podporou a komponentu nemají.

Číslo verze vypadá nezvykle, protože MySQL od léta čísluje podle kalendáře. Podle referenční příručky byla 9.7 poslední řada s postupným číslováním a první kalendářní verzí je 26.7.0 z července 2026. Tvar je rok, měsíc a pořadí opravy, takže 26.10 znamená říjen 2026. Předběžnou verzi Oracle pustil už koncem září, na Mediu o ní psal vývojář Chhinsoportrakhou 30. září.

Tabulky a procedury jako koncové body HTTPS

MRS vystaví tabulky, pohledy a uložené procedury jako koncové body REST. Aplikace pak místo spojení přes protokol MySQL posílá požadavky HTTPS a dostává dokumenty JSON. Příručka MRS ji doporučuje pro mobilní aplikace, progresivní webové aplikace a mikroslužby. Kdo potřebuje přímý přístup přes SQL nebo pracuje hlavně s relačními tabulkami, má podle téže příručky zůstat u klasického konektoru.

Definice služeb leží ve schématu mysql_rest_service_metadata. Zakládají se v MySQL Shellu příkazy rozšíření REST SQL, třeba CREATE REST SERVICE. Přihlásit se ke službě jde účtem MySQL, vlastním účtem služby nebo přes OAuth2 a MRS k ní umí vygenerovat klientskou knihovnu.

Komponenta místo samostatného Routeru

Dosud MRS běžela jen v MySQL Routeru. Příručka pro tuhle cestu žádá Router 9.3.1 nebo novější a server od verze 8.0.39. Ve verzi 26.10 stačí nainstalovat komponentu a sledovat její stav:

INSTALL COMPONENT 'file://component_mysql_rest_service';
SELECT mysql_rest_service_restart();
SHOW GLOBAL STATUS LIKE 'mysql_rest_service.state';

Komponenta poslouchá na vlastním portu, výchozí je 33443; Router při zavedení používá 8443. Šifrování je povinné, podporované jsou TLS 1.2 a 1.3. Certifikát a klíč si komponenta převezme z nastavení serveru, jenže jen při registraci. Pozdější ALTER INSTANCE RELOAD TLS na její posluchač nedosáhne, nový certifikát načte až restart komponenty.

Instalace sama nic nezveřejní. Komponenta startuje na pozadí, a dokud ve schématu chybějí metadata, čeká ve stavu WAITING_FOR_METADATA bez otevřeného portu. Obsluhuje jen služby označené jako publikované. Vývojářský režim, ve kterém Router pustí k testování i nepublikované služby, komponenta nemá. Při instalaci založí dva zamčené vnitřní účty, mysql_mrs_metadata a mysql_mrs_data. Pod nimi čte metadata a data, přihlásit se pod nimi nejde.

Limity se nastavují systémovými proměnnými. Výchozí strop je 1024 spojení HTTP a 16 MiB na tělo požadavku i odpovědi. Příliš velký požadavek dostane kód 413, příliš velkou odpověď komponenta nahradí kódem 500 s prázdným tělem. Vláken pro síťový provoz spustí při výchozí nule čtvrtinu logických procesorů, zaokrouhleno nahoru. Strop spojení HTTP je oddělený od max_connections, relace, které požadavky vyřizují, se ale do rozpočtu spojení serveru počítají.

Při replikaci běží jediná instance

Komponenta obsluhuje jen svůj vlastní server. V replikovaném nasazení verze 26.10 podporuje jedinou běžící instanci MRS, a to na zdroji nebo primárním serveru, kam se zapisuje. Změnu role v replikaci sama nepozná, při výpadku nepřepne a provoz nepřesměruje. Spojení, relace, tokeny JWT i cache má každá instance svoje. Kdo potřebuje provoz rozložit na víc strojů, má podle příručky dál Router, jehož instancí může běžet víc vedle sebe.

Kód komponenty je veřejný. V repozitáři mysql-server leží pod značkou mysql-26.10.0 adresář components/mysql_rest_service se třiceti soubory, mezi nimi obsluha systémových a stavových proměnných a funkcí pro start a zastavení.

Health Monitor a WebAuthn v edici Community

Do bezplatné edice přešly ve verzi 26.10 další dvě věci. Health Monitor, dosud jen ve službě MySQL HeatWave, sbírá údaje o procesoru, paměti a souborovém systému a ukládá je do tabulek Performance Schema. Úplnou sadu ukazatelů dává na Linuxu, na macOS jen základní a Windows zatím nepodporuje. Druhou je serverový plugin authentication_webauthn, se kterým se k databázi dá přihlásit zařízením FIDO jako druhým faktorem nebo úplně bez hesla. Ruský server TGLand, který o vydání psal 21. října, vybral z novinek tytéž tři.

Verze 26.10 dál přestala podporovat OpenSSL starší než 1.1.1. Obsahuje i opravu chyby, kvůli které InnoDB odmítal některé tabulky s mnoha sloupci VARCHAR, ačkoli je starší verze přijaly. Přísnější odhad velikosti řádku přišel s opravou zablokování v B-stromech a uživatel ho nahlásil 22. dubna jako chybu 120323 po přechodu z 8.4.8 na 8.4.9. Řada 8.4 dostala opravu v červenci ve verzi 8.4.11, řada 9.7 až teď s verzí 9.7.4.

Zdroje

Programování

databáze MySQL REST API

← zpět na výpis