Většina pluginů ukládá data do souborů ve své složce. Pro velká data (historie bloků v CoreProtectu) nebo pro sdílení mezi více servery (oprávnění LuckPerms na síti za proxy) je lepší databáze MySQL. Ukážeme, jak ji u nás vytvořit, jak do ní napojit LuckPerms a CoreProtect a jak se k ní dostat z počítače.
Co budete potřebovat
- Minecraft server u StormHostu s pluginem, který MySQL podporuje
- Oprávnění Databáze a Soubory, pokud server nevlastníte
- Asi 15 minut
Kdy MySQL místo souborů#
| Situace | Soubory (výchozí) | MySQL |
|---|---|---|
| Jeden server, běžný počet hráčů | Stačí | Není nutná |
| Síť serverů za proxy Velocity se společnými oprávněními | Nejde | Nutná – všechny servery musí číst stejná data |
| CoreProtect na velkém, dlouho běžícím serveru | Funguje, soubor roste | Lepší správa velkých dat |
| Chcete data prohlížet nebo upravovat z počítače | Složité | Jednoduché (HeidiSQL, DBeaver) |
| Web, který čte statistiky ze serveru | Nejde | Ano |
Vytvoření databáze#
V zákaznické zóně otevřete Moje služby, klikněte na Minecraft server a přejděte na záložku Databáze.
Do pole Název databáze napište krátký název, například
luckperms. Povolená jsou písmena bez diakritiky, číslice a podtržítko, nejvýš 48 znaků.Pole Povolený přístup z ponechte
%(viz níže).Klikněte na Vytvořit databázi.
V seznamu se objeví nová databáze s údaji Server, Uživatel, Povolený přístup z a Heslo.
| Údaj | Co to je | Kam ho zadáte |
|---|---|---|
| Název databáze (nahoře u databáze) | Skutečný název databáze. Systém k vašemu názvu může přidat předponu. | Do pole „database“ v pluginu. Vždy kopírujte přesně, co vidíte. |
| Server | Adresa databázového serveru ve tvaru adresa:port. | Do pole „host“/„address“, port do pole „port“. |
| Uživatel | Přihlašovací jméno do databáze (vygenerované). | Do pole „username“/„user“. |
| Heslo | Heslo (zobrazí se po kliknutí). | Do pole „password“. |
| Povolený přístup z | Odkud se smí k databázi připojit: % = odkudkoli, jinak jedna IP adresa. | Nikam, jen informace. |
Povolený přístup z
Pokud zadáte konkrétní IP adresu (například svou domácí), databáze přijme připojení jen z ní. Nepřipojí se pak ani váš Minecraft server, protože se připojuje z jiné adresy. Ponechte proto % a spolehněte se na silné vygenerované heslo. Hodnotu po vytvoření změnit nejde – musíte vytvořit novou databázi.
Další tlačítka:
- Nové heslo – vygeneruje nové heslo. Staré přestane fungovat, takže ho hned zapište do konfigurace všech pluginů, které databázi používají, a server restartujte.
- Smazat – smaže databázi i se všemi daty.
Smazání databáze
Smazání nejde vrátit a data nejsou v zálohách serveru. Před smazáním databázi exportujte (viz Zálohy databáze).
Počet databází závisí na balíčku. Nad seznamem vidíte Využito 1 z 10. Když je limit plný, uvidíte Limit je vyčerpaný. Více pluginů může sdílet jednu databázi – každý používá vlastní tabulky s vlastní předponou (LuckPerms luckperms_, CoreProtect co_).
LuckPerms#
Už máte nastavená oprávnění?
Po přepnutí na MySQL začne LuckPerms s prázdnou databází. Pokud už na serveru máte skupiny a oprávnění, udělejte nejdřív export podle části Přenos existujících oprávnění do MySQL a teprve pak pokračujte.
Vypněte server.
V záložce Soubory otevřete
plugins/.LuckPerms/ config. yml Najděte
storage-methoda sekcidataa upravte je:plugins/ LuckPerms/ YAMLconfig.yml storage-method: mysql data: address: <SERVER> database: <NAZEV_DATABAZE> username: <UZIVATEL> password: '<HESLO>'Za
<SERVER>,<NAZEV_DATABAZE>,<UZIVATEL>a<HESLO>dosaďte údaje ze záložky Databáze, vždy bez špičatých závorek. U hesla ponechte jednoduché uvozovky.Uložte soubor (Ctrl+S) a server spusťte.
| Nastavení | Co dělá | Doporučená hodnota | Kdy změnit |
|---|---|---|---|
storage-method | Kam LuckPerms ukládá data: h2 (soubor, výchozí), mysql, mariadb, yaml a další. | mysql | mariadb, pokud víte, že databázový server je MariaDB (LuckPerms ji doporučuje). |
data.address | Adresa databáze. Port se zapisuje za dvojtečku (adresa:port). | Hodnota Server | Při změně databáze. |
data.database | Název databáze. Musí už existovat. | Název ze záložky Databáze | – |
data.username, data.password | Přihlašovací údaje. | Ze záložky Databáze | Po kliknutí na Nové heslo. |
data. | Kolik spojení do databáze si LuckPerms drží. | 10 | Snižte (například na 5), pokud databáze hlásí příliš mnoho spojení. |
data. | Další parametry spojení. | useUnicode: true, characterEncoding: utf8 | Přidejte useSSL: false při varování o SSL. |
data.table-prefix | Předpona tabulek. | 'luckperms_' | Jiná předpona, když dva servery mají mít v jedné databázi oddělená data. |
server (na začátku souboru) | Název serveru pro oprávnění platná jen na jednom serveru sítě. | global | Na síti za proxy každému serveru jiný (lobby, survival). |
Speciální znaky v hesle
Heslo vždy dávejte do jednoduchých uvozovek '…'. YAML by jinak znaky jako #, : nebo % pochopil jako syntaxi. Pokud heslo obsahuje apostrof ', zapište ho dvakrát ('').
Přenos existujících oprávnění do MySQL#
Pokud už oprávnění máte v původním úložišti, přeneste je:
Ještě před změnou
storage-methodzadejte v konzoli:text lp export zaloha-opravnenilp export– uloží všechna data LuckPerms do souboru.zaloha-opravneni– název souboru. Vznikneplugins/.LuckPerms/ zaloha-opravneni. json. gz
Vypněte server, změňte
config.ymlpodle postupu výše a server spusťte.V konzoli zadejte:
text lp import zaloha-opravneni.json.gzNázev souboru pište i s příponou
.json.gz. Data se nahrají do nové databáze.
CoreProtect#
Vypněte server.
V záložce Soubory otevřete
plugins/a upravte:CoreProtect/ config. yml plugins/ CoreProtect/ YAMLconfig.yml use-mysql: true table-prefix: co_ mysql-host: <ADRESA> mysql-port: <PORT> mysql-database: <NAZEV_DATABAZE> mysql-username: <UZIVATEL> mysql-password: '<HESLO>'Údaj Server ze záložky Databáze rozdělte: část před dvojtečkou patří do
<ADRESA>, číslo za dvojtečkou do<PORT>.Uložte a server spusťte.
| Nastavení | Co dělá | Doporučená hodnota | Kdy změnit |
|---|---|---|---|
use-mysql | Ukládá historii do MySQL místo souboru. | true | false pro návrat k souboru. |
table-prefix | Předpona tabulek CoreProtectu. | co_ | Když v jedné databázi běží CoreProtect více serverů. |
mysql-host | Adresa databáze bez portu. | Část Server před dvojtečkou | – |
mysql-port | Port databáze. | Část Server za dvojtečkou | – |
mysql-database, mysql-username, mysql-password | Název databáze a přihlašovací údaje. | Ze záložky Databáze | Po kliknutí na Nové heslo. |
Stará historie se nepřenese
Přepnutím na MySQL začne CoreProtect novou historii. Dosavadní záznamy zůstanou v souboru ve složce plugins/CoreProtect, ale v MySQL nebudou. Přepínejte proto hned na začátku, ne po roce provozu.
Novější verze CoreProtectu (od verze 25) mají místo use-mysql klíč database-type. Pokud ho v souboru vidíte, nastavte database-type: mysql – má přednost před use-mysql.
Ostatní pluginy#
Konfigurace se liší, ale pole jsou téměř vždy stejná:
| Pole v konfiguraci pluginu | Co zadat |
|---|---|
host, hostname, address | Adresa z údaje Server (bez portu, pokud je pro port zvláštní pole). |
port | Port z údaje Server. |
database, db-name | Název databáze. |
username, user | Uživatel. |
password | Heslo (v uvozovkách). |
useSSL, ssl | false, pokud plugin hlásí potíže s SSL. |
jdbc-url, url | Celá adresa ve tvaru jdbc: (u ovladače MariaDB jdbc:mariadb://…). |
Po úpravě vždy restartujte server. Příkaz /reload pluginy s databází často rozbije.
Přístup z počítače#
Databázi můžete prohlížet a upravovat v počítači. Funguje to, pokud má Povolený přístup z hodnotu %.
Windows
- Nainstalujte HeidiSQL z heidisql.com (otevře se v novém okně).
- V okně správce relací klikněte na New.
- Jako Network type zvolte MariaDB/MySQL (TCP/IP).
- Do Hostname / IP zadejte adresu, do Port port (z údaje Server), do User a Password přihlašovací údaje.
- Klikněte na Open.
macOS
- Nainstalujte DBeaver Community z dbeaver.io (otevře se v novém okně).
- Zvolte Database › New Database Connection a typ MySQL (nebo MariaDB).
- Vyplňte Server Host, Port, Database, Username a Password.
- Klikněte na Test Connection a pak na Finish.
Linux
Použijte DBeaver Community z dbeaver.io (otevře se v novém okně) (postup jako na macOS), nebo klienta v terminálu. Na Ubuntu a Debianu ho nainstalujete příkazem apt install mariadb-client a připojíte se takto:
mariadb -h <ADRESA> -P <PORT> -u <UZIVATEL> -p <NAZEV_DATABAZE>mariadb– klient pro MariaDB i MySQL.-h <ADRESA>– adresa databázového serveru.-P <PORT>– port (velké P).-u <UZIVATEL>– uživatel.-p– program se zeptá na heslo (nepíše se do příkazu, aby nezůstalo v historii).<NAZEV_DATABAZE>– databáze, se kterou chcete pracovat.
Novější klient MariaDB (od verze 11.4, například na Debianu 13) ve výchozím stavu ověřuje certifikát databázového serveru. Pokud připojení skončí chybou s TLS/SSL error a zmínkou o certifikátu, přidejte za mariadb přepínač --disable-ssl-verify-server-cert (klient pak certifikát serveru nekontroluje). Pokud chyba uvádí, že server SSL nepodporuje, použijte místo něj přepínač --disable-ssl.
Opatrně s úpravami
Data neměňte, když server běží – pluginy si část dat drží v paměti a vaši změnu přepíšou. Před ručními úpravami vždy udělejte export.
Zálohy databáze#
Zálohy v záložce Zálohy obsahují jen soubory serveru, databáze v nich nejsou. Exportujte je zvlášť:
- V HeidiSQL se připojte k databázi (viz výše).
- Vlevo klikněte na databázi a zvolte Tools › Export database as SQL.
- Zaškrtněte vytvoření tabulek i data, zvolte výstup do souboru
.sqla klikněte na Export.
Obnova: v HeidiSQL vyberte databázi a zvolte File › Run SQL file. U LuckPerms máte navíc vlastní zálohu příkazem lp export <NAZEV_SOUBORU>.
Ověření#
- LuckPerms: v konzoli zadejte
lp info. V částiStoragemusí býtType: MySQL(neboMariaDB). - CoreProtect: v konzoli zadejte
co status. Uvidíte řádekDatabase: Using MySQL. - V HeidiSQL nebo DBeaveru uvidíte v databázi nové tabulky (
luckperms_…,co_…).
Když něco nefunguje#
Communications link failure nebo Unable to connect to MySQL server.#
Plugin se k databázi vůbec nedostal (druhou hlášku vypisuje CoreProtect). Zkontrolujte adresu a port (údaj Server, přesně včetně čísla za dvojtečkou). U CoreProtectu musí být adresa a port v samostatných polích. Pokud vše sedí, databázový server může být dočasně nedostupný – zkuste to za chvíli, případně napište podpoře.
Access denied for user '…'@'…' (using password: YES)#
Databáze odmítla jméno nebo heslo:
- Heslo jste mezitím změnili tlačítkem Nové heslo a v pluginu je staré.
- Heslo obsahuje speciální znaky a není v uvozovkách.
- Povolený přístup z obsahuje konkrétní IP adresu, ze které se server nepřipojuje. Vytvořte novou databázi s
%.
Unknown database '…'#
Název databáze nesouhlasí. Zkopírujte ho přesně ze záložky Databáze včetně případné předpony.
Varování Establishing SSL connection without server's identity verification is not recommended#
Jde o varování ovladače MySQL. U LuckPerms do data. přidejte useSSL: false a verifyServerCertificate: false, u jiných pluginů najděte volbu useSSL.
Connection is not available, request timed out after 5000ms#
LuckPerms nedostal spojení z poolu. Databáze je nedostupná, nebo je vyčerpaný počet spojení. Každý server s LuckPerms si ve výchozím stavu drží 10 spojení – pokud jich na databázi míří víc (síť serverů, další pluginy), snižte maximum-pool-size.
No operations allowed after connection closed#
Databáze uzavřela nečinné spojení dřív, než ho plugin obnovil. U LuckPerms musí být maximum-lifetime (v milisekundách) kratší než časový limit databáze. Výchozích 30 minut obvykle vyhovuje.
Shrnutí
- Databázi vytvoříte v záložce Databáze, Povolený přístup z ponechte
%. - Údaje kopírujte přesně, heslo v YAML dávejte do jednoduchých uvozovek.
- LuckPerms:
storage-method: mysqla sekcedata, starší data přenesete přeslp exportalp import. - CoreProtect:
use-mysql: true, adresu a port zadejte zvlášť, stará historie se nepřenese. - Databáze nejsou v zálohách serveru – exportujte je zvlášť (HeidiSQL).