De meeste plugins slaan hun gegevens op in bestanden in hun eigen map. Voor grote hoeveelheden gegevens (de blokgeschiedenis in CoreProtect) of voor het delen tussen meerdere servers (de rechten van LuckPerms in een netwerk achter een proxy) is een MySQL-database beter. We laten zien hoe je er bij ons een aanmaakt, hoe je LuckPerms en CoreProtect eraan koppelt en hoe je er vanaf je computer bij komt.
Wat je nodig hebt
- Een Minecraft-server bij StormHost met een plugin die MySQL ondersteunt
- De rechten Databases en Bestanden, als je niet de eigenaar van de server bent
- Ongeveer 15 minuten
Wanneer MySQL in plaats van bestanden#
| Situatie | Bestanden (standaard) | MySQL |
|---|---|---|
| Eén server, een gewoon aantal spelers | Voldoende | Niet nodig |
| Een servernetwerk achter de proxy Velocity met gedeelde rechten | Kan niet | Nodig: alle servers moeten dezelfde gegevens lezen |
| CoreProtect op een grote server die lang draait | Werkt, het bestand groeit | Beter beheer van grote hoeveelheden gegevens |
| Je wilt de gegevens vanaf je computer bekijken of bewerken | Lastig | Eenvoudig (HeidiSQL, DBeaver) |
| Een website die statistieken van de server uitleest | Kan niet | Ja |
Een database aanmaken#
Open in je klantaccount Mijn diensten, klik op de Minecraft-server en ga naar het tabblad Databases.
Typ in het veld Databasenaam een korte naam, bijvoorbeeld
luckperms. Toegestaan zijn letters zonder accenten, cijfers en het onderstrepingsteken, maximaal 48 tekens.Laat het veld Toegang toegestaan vanaf op
%staan (zie hieronder).Klik op Database aanmaken.
In de lijst verschijnt de nieuwe database met de gegevens Host, Gebruiker, Toegang toegestaan vanaf en Wachtwoord.
| Gegeven | Wat het is | Waar je het invult |
|---|---|---|
| Databasenaam (bovenaan bij de database) | De werkelijke naam van de database. Het systeem kan een voorvoegsel aan jouw naam toevoegen. | In het veld “database” van de plugin. Kopieer altijd precies wat je ziet. |
| Host | Het adres van de databaseserver in de vorm adres:poort. | In het veld “host”/“address”, de poort in het veld “port”. |
| Gebruiker | De inlognaam voor de database (gegenereerd). | In het veld “username”/“user”. |
| Wachtwoord | Het wachtwoord (wordt getoond als je erop klikt). | In het veld “password”. |
| Toegang toegestaan vanaf | Vanaf waar er verbinding met de database mag worden gemaakt: % = overal vandaan, anders één IP-adres. | Nergens, het is alleen ter informatie. |
Toegang toegestaan vanaf
Vul je een specifiek IP-adres in (bijvoorbeeld dat van thuis), dan accepteert de database alleen vanaf dat adres verbindingen. Ook je Minecraft-server kan dan niet verbinden, want die verbindt vanaf een ander adres. Laat het daarom op % staan en vertrouw op het sterke gegenereerde wachtwoord. De waarde kun je na het aanmaken niet meer wijzigen: je moet dan een nieuwe database aanmaken.
Andere knoppen:
- Nieuw wachtwoord – genereert een nieuw wachtwoord. Het oude werkt dan niet meer, zet het nieuwe dus meteen in de configuratie van alle plugins die de database gebruiken en herstart de server.
- Verwijderen – verwijdert de database met alle gegevens.
Een database verwijderen
Verwijderen kan niet ongedaan worden gemaakt en de gegevens zitten niet in de back-ups van de server. Exporteer de database vóór het verwijderen (zie Back-ups van de database).
Het aantal databases hangt af van je pakket. Boven de lijst zie je 1 van 10 gebruikt. Is de limiet bereikt, dan zie je De limiet is bereikt. Meerdere plugins kunnen één database delen: elke plugin gebruikt eigen tabellen met een eigen voorvoegsel (LuckPerms luckperms_, CoreProtect co_).
LuckPerms#
Heb je al rechten ingesteld?
Na het overschakelen naar MySQL begint LuckPerms met een lege database. Heb je op de server al groepen en rechten, maak dan eerst een export volgens het gedeelte Bestaande rechten overzetten naar MySQL en ga pas daarna verder.
Stop de server.
Open op het tabblad Bestanden het bestand
plugins/.LuckPerms/ config. yml Zoek
storage-methoden de sectiedataen pas ze aan:plugins/ LuckPerms/ YAMLconfig.yml storage-method: mysql data: address: <HOST> database: <DATABASE_NAME> username: <USER> password: '<PASSWORD>'Vervang
<HOST>,<DATABASE_NAME>,<USER>en<PASSWORD>door de gegevens van het tabblad Databases, altijd zonder de punthaken. Laat bij het wachtwoord de enkele aanhalingstekens staan.Sla het bestand op (Ctrl+S) en start de server.
| Instelling | Wat het doet | Aanbevolen waarde | Wanneer wijzigen |
|---|---|---|---|
storage-method | Waar LuckPerms de gegevens opslaat: h2 (bestand, standaard), mysql, mariadb, yaml en andere. | mysql | mariadb, als je weet dat de databaseserver MariaDB is (LuckPerms raadt die aan). |
data.address | Het adres van de database. De poort schrijf je achter een dubbele punt (adres:poort). | De waarde Host | Als je van database wisselt. |
data.database | De naam van de database. Die moet al bestaan. | De naam van het tabblad Databases | – |
data.username, data.password | De inloggegevens. | Van het tabblad Databases | Na een klik op Nieuw wachtwoord. |
data. | Hoeveel verbindingen met de database LuckPerms openhoudt. | 10 | Verlaag de waarde (bijvoorbeeld naar 5) als de database te veel verbindingen meldt. |
data. | Extra verbindingsparameters. | useUnicode: true, characterEncoding: utf8 | Voeg useSSL: false toe bij een waarschuwing over SSL. |
data.table-prefix | Het voorvoegsel van de tabellen. | 'luckperms_' | Een ander voorvoegsel als twee servers gescheiden gegevens in één database moeten hebben. |
server (aan het begin van het bestand) | De servernaam voor rechten die maar op één server van het netwerk gelden. | global | In een netwerk achter een proxy voor elke server een andere (lobby, survival). |
Speciale tekens in het wachtwoord
Zet het wachtwoord altijd tussen enkele aanhalingstekens '…'. Anders zou YAML tekens zoals #, : of % als syntaxis opvatten. Bevat het wachtwoord een apostrof ', schrijf die dan twee keer ('').
Bestaande rechten overzetten naar MySQL#
Staan je rechten al in de oorspronkelijke opslag, zet ze dan over:
Voer nog vóór het wijzigen van
storage-methodin de console in:text lp export zaloha-opravnenilp export– slaat alle gegevens van LuckPerms op in een bestand.zaloha-opravneni– de bestandsnaam. Er ontstaatplugins/.LuckPerms/ zaloha-opravneni. json. gz
Stop de server, wijzig
config.ymlvolgens de stappen hierboven en start de server.Voer in de console in:
text lp import zaloha-opravneni.json.gzTyp de bestandsnaam inclusief de extensie
.json.gz. De gegevens worden in de nieuwe database geladen.
CoreProtect#
Stop de server.
Open op het tabblad Bestanden het bestand
plugins/en pas aan: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>'Splits het gegeven Host van het tabblad Databases: het deel vóór de dubbele punt hoort in
<ADDRESS>, het getal na de dubbele punt in<PORT>.Sla op en start de server.
| Instelling | Wat het doet | Aanbevolen waarde | Wanneer wijzigen |
|---|---|---|---|
use-mysql | Slaat de geschiedenis op in MySQL in plaats van in een bestand. | true | false om terug te gaan naar het bestand. |
table-prefix | Het voorvoegsel van de tabellen van CoreProtect. | co_ | Als in één database de CoreProtect van meerdere servers draait. |
mysql-host | Het adres van de database zonder poort. | Het deel van Host vóór de dubbele punt | – |
mysql-port | De poort van de database. | Het deel van Host na de dubbele punt | – |
mysql-database, mysql-username, mysql-password | De naam van de database en de inloggegevens. | Van het tabblad Databases | Na een klik op Nieuw wachtwoord. |
De oude geschiedenis gaat niet mee
Met het overschakelen naar MySQL begint CoreProtect een nieuwe geschiedenis. De bestaande records blijven in het bestand in de map plugins/CoreProtect staan, maar komen niet in MySQL. Schakel daarom meteen aan het begin over, niet pas nadat de server een jaar draait.
Nieuwere versies van CoreProtect (vanaf versie 25) hebben in plaats van use-mysql de sleutel database-type. Zie je die in het bestand, stel dan database-type: mysql in. Die sleutel gaat vóór use-mysql.
Andere plugins#
De configuratie verschilt per plugin, maar de velden zijn bijna altijd dezelfde:
| Veld in de configuratie van de plugin | Wat je invult |
|---|---|
host, hostname, address | Het adres uit het gegeven Host (zonder poort, als er een apart veld voor de poort is). |
port | De poort uit het gegeven Host. |
database, db-name | De naam van de database. |
username, user | De gebruiker. |
password | Het wachtwoord (tussen aanhalingstekens). |
useSSL, ssl | false, als de plugin problemen met SSL meldt. |
jdbc-url, url | Het volledige adres in de vorm jdbc: (bij de MariaDB-driver jdbc:mariadb://…). |
Herstart de server altijd na een wijziging. Het commando /reload ontregelt plugins met een database vaak.
Toegang vanaf je computer#
Je kunt de database op je computer bekijken en bewerken. Dat werkt als Toegang toegestaan vanaf de waarde % heeft.
Windows
- Installeer HeidiSQL van heidisql.com (opent in een nieuw venster).
- Klik in het venster van de sessiebeheerder op New.
- Kies bij Network type de optie MariaDB/MySQL (TCP/IP).
- Vul bij Hostname / IP het adres in, bij Port de poort (uit het gegeven Host) en bij User en Password de inloggegevens.
- Klik op Open.
macOS
- Installeer DBeaver Community van dbeaver.io (opent in een nieuw venster).
- Kies Database › New Database Connection en het type MySQL (of MariaDB).
- Vul Server Host, Port, Database, Username en Password in.
- Klik op Test Connection en daarna op Finish.
Linux
Gebruik DBeaver Community van dbeaver.io (opent in een nieuw venster) (dezelfde stappen als op macOS), of een client in de terminal. Op Ubuntu en Debian installeer je die met het commando apt install mariadb-client en verbind je zo:
mariadb -h <ADDRESS> -P <PORT> -u <USER> -p <DATABASE_NAME>mariadb– de client voor zowel MariaDB als MySQL.-h <ADDRESS>– het adres van de databaseserver.-P <PORT>– de poort (hoofdletter P).-u <USER>– de gebruiker.-p– het programma vraagt om het wachtwoord (je typt het niet in het commando, zodat het niet in de geschiedenis blijft staan).<DATABASE_NAME>– de database waarmee je wilt werken.
Een nieuwere MariaDB-client (vanaf versie 11.4, bijvoorbeeld op Debian 13) controleert standaard het certificaat van de databaseserver. Eindigt de verbinding met een fout met TLS/SSL error en een verwijzing naar het certificaat, voeg dan achter mariadb de optie --disable-ssl-verify-server-cert toe (de client controleert het certificaat van de server dan niet). Meldt de fout dat de server geen SSL ondersteunt, gebruik dan in plaats daarvan de optie --disable-ssl.
Voorzichtig met wijzigingen
Wijzig geen gegevens terwijl de server draait: plugins houden een deel van de gegevens in het geheugen en overschrijven jouw wijziging. Maak vóór handmatige wijzigingen altijd een export.
Back-ups van de database#
De back-ups op het tabblad Back-ups bevatten alleen de bestanden van de server, databases zitten er niet in. Exporteer die apart:
- Verbind in HeidiSQL met de database (zie hierboven).
- Klik links op de database en kies Tools › Export database as SQL.
- Vink zowel het aanmaken van de tabellen als de gegevens aan, kies uitvoer naar een
.sql-bestand en klik op Export.
Herstellen: selecteer in HeidiSQL de database en kies File › Run SQL file. Bij LuckPerms heb je daarnaast een eigen back-up via het commando lp export <FILE_NAME>.
Controle#
- LuckPerms: voer in de console
lp infoin. In het gedeelteStoragemoetType: MySQL(ofMariaDB) staan. - CoreProtect: voer in de console
co statusin. Je ziet de regelDatabase: Using MySQL. - In HeidiSQL of DBeaver zie je nieuwe tabellen in de database (
luckperms_…,co_…).
Als iets niet werkt#
Communications link failure of Unable to connect to MySQL server.#
De plugin heeft de database helemaal niet bereikt (de tweede melding komt van CoreProtect). Controleer het adres en de poort (het gegeven Host, exact, inclusief het getal na de dubbele punt). Bij CoreProtect moeten het adres en de poort in aparte velden staan. Klopt alles, dan kan de databaseserver tijdelijk onbereikbaar zijn. Probeer het zo meteen opnieuw of neem contact op met support.
Access denied for user '…'@'…' (using password: YES)#
De database heeft de naam of het wachtwoord geweigerd:
- Je hebt het wachtwoord intussen gewijzigd met de knop Nieuw wachtwoord en in de plugin staat nog het oude.
- Het wachtwoord bevat speciale tekens en staat niet tussen aanhalingstekens.
- Toegang toegestaan vanaf bevat een specifiek IP-adres van waaraf de server niet verbindt. Maak een nieuwe database aan met
%.
Unknown database '…'#
De naam van de database klopt niet. Kopieer hem exact van het tabblad Databases, inclusief een eventueel voorvoegsel.
Waarschuwing Establishing SSL connection without server's identity verification is not recommended#
Dit is een waarschuwing van de MySQL-driver. Voeg bij LuckPerms useSSL: false en verifyServerCertificate: false toe aan data., zoek bij andere plugins de optie useSSL.
Connection is not available, request timed out after 5000ms#
LuckPerms heeft geen verbinding uit de pool gekregen. De database is onbereikbaar, of het maximale aantal verbindingen is bereikt. Elke server met LuckPerms houdt standaard 10 verbindingen open. Gaan er meer verbindingen naar de database (een servernetwerk, andere plugins), verlaag dan maximum-pool-size.
No operations allowed after connection closed#
De database heeft een inactieve verbinding gesloten voordat de plugin die had vernieuwd. Bij LuckPerms moet maximum-lifetime (in milliseconden) korter zijn dan de time-out van de database. De standaardwaarde van 30 minuten voldoet meestal.
Samenvatting
- De database maak je aan op het tabblad Databases, laat Toegang toegestaan vanaf op
%staan. - Kopieer de gegevens exact, zet het wachtwoord in YAML tussen enkele aanhalingstekens.
- LuckPerms:
storage-method: mysqlen de sectiedata, oudere gegevens zet je over metlp exportenlp import. - CoreProtect:
use-mysql: true, vul het adres en de poort apart in, de oude geschiedenis gaat niet mee. - Databases zitten niet in de back-ups van de server: exporteer ze apart (HeidiSQL).