Bazy danych MySQL
Jak utworzyć bazę MySQL w panelu NexoraHost, odczytać dane do połączenia i podłączyć do niej plugin Minecrafta, serwer FiveM albo bota.
Na tej stronie8 sekcji
Niektóre pluginy, mody i boty przechowują dane w bazie MySQL zamiast w plikach. Tak działa np. LuckPerms ustawiony na wspólną bazę, CoreProtect na dużym serwerze, większość frameworków FiveM i wiele botów. Bazę tworzysz w zakładce Bazy danych, a potem przepisujesz dane do połączenia do konfiguracji dodatku. Zajmuje to około 5 minut.
Liczba baz zależy od pakietu. Zwykle serwer gry może mieć 2 bazy, a darmowy serwer próbny 1. Strony WWW mają 1 bazę w pakiecie WWW Start, 3 w WWW Plus i 5 w WWW Pro.
Tworzenie bazy#
- Otwórz serwer w panelu i w menu bocznym, w sekcji Pliki i dane, kliknij Bazy danych. Na pustej liście zobaczysz napis Nie masz jeszcze żadnych baz danych.
- Kliknij New Database.
- W oknie Create new database wpisz w polu Nazwa bazy nazwę, po której rozpoznasz bazę, np.
luckperms. Nazwa musi mieć od 3 do 48 znaków i może zawierać litery, cyfry, podkreślenia, myślniki i kropki. - Pole Połączenia z zostaw puste. Puste pole oznacza brak ograniczeń co do tego, skąd można się łączyć z bazą. Jeśli wpiszesz tu adres, którego nie jesteś pewien, Twój serwer gry może nie dostać dostępu do własnej bazy.
- Kliknij Utwórz bazę.
Baza pojawi się na liście z trzema polami: Endpoint, Connections from i Username. Pod spodem panel pokazuje, ile baz już wykorzystałeś, np. 1 of 2 databases have been allocated to this server. Gdy limit jest pełny, przycisk New Database znika.
Dane do połączenia#
- Na liście baz kliknij przycisk z ikoną oka przy wybranej bazie.
Otworzy się okno Database connection details z polami:
Pole w panelu Co to jest Gdzie to wpisać Endpoint adres serwera bazy i port po dwukropku w konfiguracji dodatku jako host i port Connections from skąd wolno się łączyć nigdzie, to tylko informacja Username nazwa użytkownika bazy jako użytkownika Password hasło do bazy jako hasło JDBC Connection String gotowy adres połączenia dla programów w Javie tam, gdzie dodatek prosi o adres JDBC Przesuń tabelę w bok, żeby zobaczyć wszystkie kolumny.
- Kliknij pole Endpoint, Username, Password albo JDBC Connection String, żeby skopiować jego zawartość.
- Kliknij Zamknij.
Nazwa bazy na liście różni się od tej, którą wpisałeś: panel dodaje do niej przedrostek z numerem serwera, np. s12_luckperms. W konfiguracji dodatku wpisuj zawsze pełną nazwę z panelu, razem z przedrostkiem.
Ważne
Jako adres wpisuj dokładnie to, co pokazuje pole Endpoint. Nie wpisuj localhost ani 127.0.0.1: serwer gry działa w odizolowanym środowisku i pod tym adresem bazy nie znajdzie.
Przykłady konfiguracji#
W przykładach zamiast adres:3306 wpisz wartość z pola Endpoint, a w pozostałych miejscach nazwę bazy, użytkownika i hasło z panelu.
LuckPerms (Minecraft)#
- Zatrzymaj serwer.
W zakładce Pliki otwórz
plugins/LuckPerms/config.ymli ustaw:YAMLstorage-method: MySQL data: address: adres:3306 database: s12_luckperms username: uzytkownik_z_panelu password: 'haslo_z_panelu'- Kliknij ZAPISZ i uruchom serwer.
Uprawnienia z poprzedniego zapisu nie przeniosą się same. Przed zmianą wpisz w konsoli lp export nazwa, a po zmianie lp import nazwa.
FiveM (oxmysql)#
W pliku server.cfg:
set mysql_connection_string "mysql://uzytkownik:haslo@adres:3306/nazwa_bazy?charset=utf8mb4"Jeśli hasło zawiera znaki takie jak @, : albo /, trzeba je w tym zapisie zakodować, np. @ jako %40. Więcej o serwerze FiveM: FiveM.
Bot w Node.js#
Dane do bazy trzymaj w zmiennych środowiskowych albo w pliku .env (np. z pakietem dotenv), a nie wpisane w kod, który wrzucasz na GitHuba. Przykład z biblioteką mysql2:
const mysql = require('mysql2/promise');
const db = mysql.createPool({
host: process.env.DB_HOST,
port: Number(process.env.DB_PORT),
user: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME,
});W pliku .env w DB_HOST wpisz część pola Endpoint przed dwukropkiem, a w DB_PORT liczbę po dwukropku. Więcej o botach: Bot Discord i aplikacje w Pythonie.
phpMyAdmin#
Tabele w bazie przeglądasz i zmieniasz w phpMyAdmin pod adresem baza.nexorahost.pl (otwiera się w nowej karcie). Logujesz się nazwą użytkownika i hasłem bazy z okna Database connection details (pola Username i Password). Tam też zaimportujesz kopię bazy z pliku .sql na karcie Import (plik do 128 MB) i zrobisz eksport na karcie Export.
Kopię wszystkich baz robimy co noc i trzymamy przez 7 dni. Przed większymi zmianami zrób też własny eksport w phpMyAdmin.
Zmiana hasła do bazy#
Hasło do bazy wyciekło, np. na zrzucie ekranu? Zmień je:
- Kliknij przycisk z ikoną oka przy bazie.
- W oknie Database connection details kliknij Zmień hasło. Panel wygeneruje nowe hasło.
- Wpisz nowe hasło w konfiguracji wszystkich dodatków, które korzystają z tej bazy, i zrestartuj serwer.
Usuwanie bazy#
Ważne
Usunięcie bazy jest nieodwracalne. Razem z nią znikają wszystkie dane, a kopie zapasowe z panelu ich nie zawierają.
- Kliknij czerwoną ikonę kosza przy bazie.
- W oknie Confirm database deletion wpisz w polu Potwierdź nazwę bazy nazwę bazy.
- Kliknij Usuń bazę.
Dobre praktyki#
- Planuj bazy z głową. Kilka pluginów może dzielić jedną bazę, bo każdy tworzy własne tabele, zwykle z własnym przedrostkiem. Drugą bazę zostaw np. na bota albo stronę.
- Nie pokazuj hasła. Uważaj na zrzuty ekranu konfiguracji wrzucane na fora i Discorda.
- Eksportuj ważne dane. Kopie zapasowe z panelu to archiwum plików serwera, a baza jest czymś osobnym. Wiele pluginów ma własne polecenia eksportu, np.
lp exportw LuckPerms. - Daj ekipie tylko potrzebny dostęp. Uprawnienie VIEW_PASSWORD z grupy DATABASE pokazuje hasło do bazy. Więcej: Dostęp dla ekipy.
Gdy plugin nie łączy się z bazą#
Sprawdź po kolei:
- adres i port, przepisane z pola Endpoint, a nie
localhost, - pełną nazwę bazy, razem z przedrostkiem, oraz nazwę użytkownika,
- hasło, bez spacji na początku i końcu, i to, czy nie zmieniłeś go niedawno przyciskiem Zmień hasło,
- pole Connections from przy bazie: jeśli przy tworzeniu wpisałeś adres w polu Połączenia z, utwórz bazę od nowa z pustym polem (tego pola nie da się zmienić, a usunięcie bazy kasuje dane, więc najpierw je wyeksportuj),
- komunikat w Konsoli, np.
Access denied(złe hasło albo użytkownik) alboUnknown database(zła nazwa bazy).
Panel pokazuje błąd przy tworzeniu bazy albo nie możesz jej utworzyć, choć masz wolne miejsce w limicie? Napisz na kontakt@nexorahost.pl i podaj nazwę serwera.