Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Databáze

Databáze je zjednodušeně řečeno místo, kde jsou ukládána, čtena a upravována nějaká data (typicky pluginem).

Druhy databází

Z hlediska uživatele se jednodušeně řečeno databáze dělí na dva druhy.

  1. Souborová databáze

Toto je databáze, která je uložena jako jeden soubor na disku. Takovým druhem databáze je např. H2 (v základu využívá např. LuckPerms) a SQLite (v základu využívá např. CoreProtect).

  1. Samostatná databáze

Samostatná databáze (jako např. MySQL) je databáze, která běží jako samostatná služba (proces). Na tuto databázi se dá vzdáleně připojit z jiného serveru. Tento druh databáze je nejspíš to, co si uživatel běžně pod pojmem “databáze” představí.

Samostatná databáze

Využití

Samostatná databáze se nejčastěji využívá v případě proxy serverů, kde je zapotřebí synchronizovat data napříč vícero jednotlivými servery. Dalším důvodem může být přístup k datům vzdáleně (např. když chcete zobrazit data na webu).

Možností využití existuje mnoho, toto jsou nejčastější z nich.

Nastavení databáze

V případě, kdy plugin jako druh úložiště nevyužívá samostatnou databázi automaticky, je zapotřebí v konfiguraci pluginu, kde chcete databázi používat, nastavit druh úložiště na tuto databázi.

Tato možnost se často nazývá storage-method, storage-type či podobně.

Pokud plugin obsahuje data, o která nechcete po změně druhu úložiště přijít, je nutno provést konverzi dat. Více se dočtete zde.

Po změně druhu úložiště je nutno nastavit údaje k samotné databázi. Standardně je potřeba nastavit následující údaje:

  1. adresa databáze (někdy také uváděno jako ‘host’)
  2. název databáze
  3. název uživatele databáze
  4. heslo
  5. port (v případě, kdy není výchozí, což je např. u MySQL 3306)

Výše zmíněné kroky je zapotřebí udělat na všech serverech, které mají databázi jako úložiště využívat (takže např. v případě využití LuckPerms, kdy chcete mít na všech serverech permise propojené, je zapotřebí na všech serverech vč. proxy serveru nastavit údaje ke stejné databázi).

Níže je ukázka, jak může vypadat nastavení konfigurace LuckPerms pro využití MySQL.

storage-method: "MySQL"
data:
  address: "mysql.hostify.cz"
  database: "user_luckperms_53642"
  username: "root"
  password: 'XT7D28Cp2xDp;'

Všechna ostatní nastavení nechte výchozí a upravujte je jen v případě, kdy víte, co děláte. Téměr vždy je totiž zapotřebí upravit pouze výše zmíněné nastavení, tedy druh úložiště, adresu databáze (příp. její port, pokud není výchozí), název databáze, uživatele, a heslo.

Zmizení dat po změně druhu úložiště

Když je v pluginu změněn druh úložiště (např. z SQLite na MySQL), existující data jakoby zmizí.

Žádná data však nezmizí. Tato data stále existují, avšak kvůli změně úložiště plugin s nimi již nepracuje. Pokud byste změnili druh úložiště zpět na původní, data by se opět objevila (logicky viz zde).

Proto pokud chcete původní data i po změně druhu úložiště, je nutné provést konverzi dat. Jak konverzi dat provést záleží na konkrétním pluginu, tudíž se více dočtete v jeho dokumentaci.

Ostatní

Velikost MySQL

V případě, kdy je databáze poskytována jako doplňková služba, má často menší maximální velikost na jednu databázi (typicky 1 GB). V takovém případě není vhodná pro pluginy jako Dynmap, která zabírá místa o mnoho více. Pro pluginy jako LuckPerms ale bývá tato velikost naprosto dostačující.

Co je MariaDB

Je možné, že poskytovatel Vašich služeb namísto MySQL poskytuje MariaDB, což je “vylepšená” MySQL. Trápit Vás to nemusí, jelikož MariaDB je s MySQL kompatibilní. Jako běžný uživatel téměř nemáte šanci rozdíl mezi těmito databázemi poznat.

Licence databází

Pokud využíváte sdílený hosting a požádáte o MongoDB, může se stát, že Váš požadavek poskytovatel zamítne, i když individuálním požadavkům standardně vyhovuje. Děje se tak kvůli licenci, jejíž problematická část je níže. To stejné platí pro Redis Stack (RediSearch, RedisJSON, …) a od verze 7.4 i Redis samotný (https://www.theregister.com/2024/03/22/redis_changes_license/).

Pluginy na nových verzích však MongoDB vyžadují minimálně. Nejčastěji se s požadavkem na MongoDB či Redis setkáte u placených pluginů pro staré “pvp verze” (1.7.10/1.8.8).

“The SSPL is based on the GNU Affero General Public License (AGPL), with a modified Section 13 that requires that those making SSPL-licensed software available to third-parties (modified or not) as part of a “service” must release the source code for the entirety of the service, including without limitation all “management software, user interfaces, application program interfaces, automation software, monitoring software, backup software, storage software and hosting software, all such that a user could run an instance of the service using the Service Source Code you make available”, under the SSPL. The chapter structure of the Server Side Public License is identical to that to the AGPL, except that the GPL preamble and application instructions are stripped from the license text.“ Zdroj: https://en.wikipedia.org/wiki/Server_Side_Public_License