Większość pluginów przechowuje dane w plikach we własnym folderze. Przy dużej ilości danych (historia bloków w CoreProtect) albo przy współdzieleniu danych między kilkoma serwerami (uprawnienia LuckPerms w sieci za proxy) lepiej sprawdza się baza danych MySQL. Ten poradnik pokazuje, jak ją utworzyć w StormHost, jak podłączyć do niej LuckPerms i CoreProtect oraz jak dostać się do niej z komputera.
Czego potrzebujesz
- Serwer Minecraft w StormHost z pluginem obsługującym MySQL
- Uprawnienia Bazy danych i Pliki, jeśli nie jesteś właścicielem serwera
- Około 15 minut
Kiedy MySQL zamiast plików#
| Sytuacja | Pliki (domyślnie) | MySQL |
|---|---|---|
| Jeden serwer, zwykła liczba graczy | Wystarczą | Niepotrzebny |
| Sieć serwerów za proxy Velocity ze wspólnymi uprawnieniami | Niemożliwe | Wymagany – wszystkie serwery muszą czytać te same dane |
| CoreProtect na dużym, długo działającym serwerze | Działa, ale plik stale rośnie | Lepiej radzi sobie z dużymi danymi |
| Chcesz przeglądać lub edytować dane z komputera | Skomplikowane | Łatwe (HeidiSQL, DBeaver) |
| Strona WWW, która czyta statystyki z serwera | Niemożliwe | Tak |
Utworzenie bazy danych#
W strefie klienta otwórz Moje usługi, kliknij swój serwer Minecraft i przejdź do zakładki Baza danych.
W polu Nazwa bazy danych wpisz krótką nazwę, na przykład
luckperms. Dozwolone są litery bez znaków diakrytycznych, cyfry i podkreślniki, maksymalnie 48 znaków.Pole Dozwolone połączenia z zostaw na
%(patrz niżej).Kliknij Utwórz bazę danych.
Nowa baza pojawi się na liście z danymi Host, Użytkownik, Dozwolone połączenia z i Hasło.
| Dane | Co to jest | Gdzie to wpisujesz |
|---|---|---|
| Nazwa bazy danych (u góry bazy) | Rzeczywista nazwa bazy danych. System może dodać do wybranej nazwy prefiks. | W polu „database” pluginu. Zawsze kopiuj dokładnie to, co widzisz. |
| Host | Adres serwera bazy danych w postaci adres:port. | W polu „host”/„address”, a port w polu „port”. |
| Użytkownik | Nazwa logowania do bazy (wygenerowana). | W polu „username”/„user”. |
| Hasło | Hasło (wyświetli się po kliknięciu). | W polu „password”. |
| Dozwolone połączenia z | Skąd można łączyć się z bazą: % = zewsząd, inaczej jeden adres IP. | Nigdzie, to tylko informacja. |
Dozwolone połączenia z
Jeśli wpiszesz konkretny adres IP (na przykład domowy), baza przyjmie połączenia tylko z tego adresu. Nie połączy się z nią nawet Twój serwer Minecraft, bo łączy się z innego adresu. Zostaw więc % i polegaj na silnym wygenerowanym haśle. Wartości nie da się zmienić po utworzeniu bazy – trzeba by utworzyć nową bazę.
Pozostałe przyciski:
- Nowe hasło – generuje nowe hasło. Stare przestaje działać, więc od razu wpisz nowe w konfiguracji każdego pluginu, który używa bazy, i uruchom serwer ponownie.
- Usuń – usuwa bazę razem ze wszystkimi danymi.
Usunięcie bazy danych
Usunięcia nie da się cofnąć, a danych nie ma w kopiach zapasowych serwera. Przed usunięciem wyeksportuj bazę (zobacz Kopie zapasowe bazy danych).
Liczba baz danych zależy od pakietu. Nad listą zobaczysz Wykorzystano 1 z 10. Gdy limit się wyczerpie, zobaczysz Limit został osiągnięty. Jedną bazę może dzielić kilka pluginów – każdy używa własnych tabel z własnym prefiksem (LuckPerms luckperms_, CoreProtect co_).
LuckPerms#
Masz już ustawione uprawnienia?
Po przejściu na MySQL LuckPerms zaczyna z pustą bazą. Jeśli masz już na serwerze grupy i uprawnienia, najpierw je wyeksportuj według sekcji Przeniesienie istniejących uprawnień do MySQL i dopiero potem kontynuuj.
Zatrzymaj serwer.
W zakładce Pliki otwórz
plugins/.LuckPerms/ config. yml Znajdź
storage-methodi sekcjędatai zmień je:plugins/ LuckPerms/ YAMLconfig.yml storage-method: mysql data: address: <HOST> database: <DATABASE_NAME> username: <USER> password: '<PASSWORD>'Zamiast
<HOST>,<DATABASE_NAME>,<USER>i<PASSWORD>wpisz dane z zakładki Baza danych, zawsze bez nawiasów ostrych. Pojedyncze cudzysłowy wokół hasła zostaw.Zapisz plik (Ctrl+S) i uruchom serwer.
| Ustawienie | Co robi | Zalecana wartość | Kiedy zmieniać |
|---|---|---|---|
storage-method | Gdzie LuckPerms przechowuje dane: h2 (plik, domyślnie), mysql, mariadb, yaml i inne. | mysql | mariadb, jeśli wiesz, że serwer bazy to MariaDB (LuckPerms go zaleca). |
data.address | Adres bazy danych. Port wpisuje się po dwukropku (adres:port). | Wartość Host | Przy zmianie bazy. |
data.database | Nazwa bazy danych. Musi już istnieć. | Nazwa z zakładki Baza danych | – |
data.username, data.password | Dane logowania. | Z zakładki Baza danych | Po kliknięciu Nowe hasło. |
data. | Ile połączeń z bazą LuckPerms trzyma otwartych. | 10 | Zmniejsz (na przykład do 5), jeśli baza zgłasza zbyt wiele połączeń. |
data. | Dodatkowe parametry połączenia. | useUnicode: true, characterEncoding: utf8 | Dodaj useSSL: false, jeśli pojawia się ostrzeżenie o SSL. |
data.table-prefix | Prefiks tabel. | 'luckperms_' | Inny prefiks, gdy dwa serwery mają mieć w jednej bazie osobne dane. |
server (na początku pliku) | Nazwa serwera dla uprawnień obowiązujących tylko na jednym serwerze w sieci. | global | W sieci za proxy inna dla każdego serwera (lobby, survival). |
Znaki specjalne w haśle
Hasło zawsze umieszczaj w pojedynczych cudzysłowach '…'. Inaczej YAML odczytałby znaki takie jak #, : czy % jako składnię. Jeśli hasło zawiera apostrof ', wpisz go podwójnie ('').
Przeniesienie istniejących uprawnień do MySQL#
Jeśli masz już uprawnienia w pierwotnym magazynie, przenieś je:
Przed zmianą
storage-methodwpisz w konsoli:text lp export zaloha-opravnenilp export– zapisuje wszystkie dane LuckPerms do pliku.zaloha-opravneni– nazwa pliku. Powstanieplugins/.LuckPerms/ zaloha-opravneni. json. gz
Zatrzymaj serwer, zmień
config.ymljak wyżej i uruchom serwer.Wpisz w konsoli:
text lp import zaloha-opravneni.json.gzNazwę pliku wpisz łącznie z rozszerzeniem
.json.gz. Dane zostaną wczytane do nowej bazy.
CoreProtect#
Zatrzymaj serwer.
W zakładce Pliki otwórz
plugins/i zmień:CoreProtect/ config. yml plugins/ CoreProtect/ YAMLconfig.yml use-mysql: true table-prefix: co_ mysql-host: <ADDRESS> mysql-port: <PORT> mysql-database: <DATABASE_NAME> mysql-username: <USER> mysql-password: '<PASSWORD>'Rozdziel wartość Host z zakładki Baza danych: część przed dwukropkiem wpisz w
<ADDRESS>, liczbę po dwukropku w<PORT>.Zapisz i uruchom serwer.
| Ustawienie | Co robi | Zalecana wartość | Kiedy zmieniać |
|---|---|---|---|
use-mysql | Przechowuje historię w MySQL zamiast w pliku. | true | false, aby wrócić do pliku. |
table-prefix | Prefiks tabel CoreProtect. | co_ | Gdy CoreProtect z kilku serwerów używa jednej bazy. |
mysql-host | Adres bazy danych bez portu. | Część Host przed dwukropkiem | – |
mysql-port | Port bazy danych. | Część Host po dwukropku | – |
mysql-database, mysql-username, mysql-password | Nazwa bazy i dane logowania. | Z zakładki Baza danych | Po kliknięciu Nowe hasło. |
Stara historia nie zostanie przeniesiona
Po przejściu na MySQL CoreProtect zaczyna nową historię. Dotychczasowe wpisy zostają w pliku w folderze plugins/CoreProtect, ale w MySQL ich nie będzie. Przejdź więc od razu na początku, a nie po roku działania serwera.
Nowsze wersje CoreProtect (od wersji 25) mają zamiast use-mysql klucz database-type. Jeśli widzisz go w pliku, ustaw database-type: mysql – ma pierwszeństwo przed use-mysql.
Inne pluginy#
Konfiguracje się różnią, ale pola są prawie zawsze takie same:
| Pole w konfiguracji pluginu | Co wpisać |
|---|---|
host, hostname, address | Adres z wartości Host (bez portu, jeśli jest osobne pole na port). |
port | Port z wartości Host. |
database, db-name | Nazwa bazy danych. |
username, user | Użytkownik. |
password | Hasło (w cudzysłowach). |
useSSL, ssl | false, jeśli plugin zgłasza problemy z SSL. |
jdbc-url, url | Pełny adres w postaci jdbc: (dla sterownika MariaDB jdbc:mariadb://…). |
Po zmianach zawsze uruchom serwer ponownie. Polecenie /reload często psuje pluginy korzystające z bazy danych.
Dostęp z komputera#
Bazę możesz przeglądać i edytować na komputerze. Działa to, jeśli Dozwolone połączenia z ma wartość %.
Windows
- Zainstaluj HeidiSQL z heidisql.com (otwiera się w nowym oknie).
- W oknie menedżera sesji kliknij New.
- Jako Network type wybierz MariaDB/MySQL (TCP/IP).
- W Hostname / IP wpisz adres, w Port port (oba z wartości Host), a w User i Password dane logowania.
- Kliknij Open.
macOS
- Zainstaluj DBeaver Community z dbeaver.io (otwiera się w nowym oknie).
- Wybierz Database › New Database Connection i typ MySQL (lub MariaDB).
- Wypełnij Server Host, Port, Database, Username i Password.
- Kliknij Test Connection, a potem Finish.
Linux
Użyj DBeaver Community z dbeaver.io (otwiera się w nowym oknie) (kroki jak na macOS) albo klienta w terminalu. Na Ubuntu i Debianie zainstalujesz go poleceniem apt install mariadb-client i połączysz się tak:
mariadb -h <ADDRESS> -P <PORT> -u <USER> -p <DATABASE_NAME>mariadb– klient dla MariaDB i MySQL.-h <ADDRESS>– adres serwera bazy danych.-P <PORT>– port (wielkie P).-u <USER>– użytkownik.-p– program zapyta o hasło (nie wpisuje się go do polecenia, więc nie trafi do historii).<DATABASE_NAME>– baza, z którą chcesz pracować.
Nowsze klienty MariaDB (od wersji 11.4, na przykład na Debianie 13) domyślnie weryfikują certyfikat serwera bazy danych. Jeśli połączenie kończy się błędem TLS/SSL error wspominającym certyfikat, dodaj za mariadb przełącznik --disable-ssl-verify-server-cert (klient nie będzie wtedy sprawdzał certyfikatu serwera). Jeśli błąd mówi, że serwer nie obsługuje SSL, użyj zamiast tego przełącznika --disable-ssl.
Ostrożnie z edycją
Nie zmieniaj danych przy działającym serwerze – pluginy trzymają część danych w pamięci i nadpiszą Twoją zmianę. Przed każdą ręczną edycją zrób eksport.
Kopie zapasowe bazy danych#
Kopie zapasowe w zakładce Kopie zapasowe zawierają tylko pliki serwera, nie bazy danych. Eksportuj je osobno:
- Połącz się z bazą w HeidiSQL (patrz wyżej).
- Kliknij bazę po lewej i wybierz Tools › Export database as SQL.
- Zaznacz tworzenie tabel i dane, wybierz zapis do pliku
.sqli kliknij Export.
Przywracanie: w HeidiSQL zaznacz bazę i wybierz File › Run SQL file. LuckPerms ma też własną kopię zapasową poleceniem lp export <FILE_NAME>.
Weryfikacja#
- LuckPerms: wpisz w konsoli
lp info. SekcjaStoragemusi pokazywaćType: MySQL(lubMariaDB). - CoreProtect: wpisz w konsoli
co status. Zobaczysz linięDatabase: Using MySQL. - W HeidiSQL lub DBeaverze zobaczysz w bazie nowe tabele (
luckperms_…,co_…).
Rozwiązywanie problemów#
Communications link failure lub Unable to connect to MySQL server.#
Plugin w ogóle nie dotarł do bazy (drugi komunikat pochodzi z CoreProtect). Sprawdź adres i port (wartość Host, dokładnie, łącznie z liczbą po dwukropku). W CoreProtect adres i port muszą być w osobnych polach. Jeśli wszystko się zgadza, serwer bazy może być chwilowo niedostępny – spróbuj ponownie za chwilę albo skontaktuj się z pomocą techniczną.
Access denied for user '…'@'…' (using password: YES)#
Baza odrzuciła nazwę użytkownika lub hasło:
- W międzyczasie zmieniłeś hasło przyciskiem Nowe hasło, a plugin ma wciąż stare.
- Hasło zawiera znaki specjalne i nie jest w cudzysłowach.
- Dozwolone połączenia z zawiera konkretny adres IP, z którego serwer się nie łączy. Utwórz nową bazę z
%.
Unknown database '…'#
Nazwa bazy się nie zgadza. Skopiuj ją dokładnie z zakładki Baza danych, łącznie z ewentualnym prefiksem.
Ostrzeżenie: Establishing SSL connection without server's identity verification is not recommended#
To ostrzeżenie sterownika MySQL. W LuckPerms dodaj do data. wartości useSSL: false i verifyServerCertificate: false; w innych pluginach szukaj opcji useSSL.
Connection is not available, request timed out after 5000ms#
LuckPerms nie dostał połączenia ze swojej puli. Baza jest niedostępna albo osiągnięto limit połączeń. Każdy serwer z LuckPerms trzyma domyślnie 10 połączeń – jeśli do bazy kieruje się ich więcej (sieć serwerów, inne pluginy), zmniejsz maximum-pool-size.
No operations allowed after connection closed#
Baza zamknęła nieaktywne połączenie, zanim plugin je odnowił. W LuckPerms maximum-lifetime (w milisekundach) musi być krótszy niż limit czasu bazy. Domyślne 30 minut zwykle działa.
Podsumowanie
- Bazę utworzysz w zakładce Baza danych, a Dozwolone połączenia z zostaw na
%. - Dane kopiuj dokładnie, a hasło w YAML umieszczaj w pojedynczych cudzysłowach.
- LuckPerms:
storage-method: mysqli sekcjadata; istniejące dane przeniesiesz poleceniamilp exportilp import. - CoreProtect:
use-mysql: true, adres i port wpisz osobno; stara historia nie zostanie przeniesiona. - Bazy danych nie są częścią kopii zapasowych serwera – eksportuj je osobno (HeidiSQL).