Przejdź do treści
Zamów serwer

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.

5 min czytania Zaktualizowano 
Na tej stronie8 sekcji
  1. Tworzenie bazy
  2. Dane do połączenia
  3. Przykłady konfiguracji
  4. phpMyAdmin
  5. Zmiana hasła do bazy
  6. Usuwanie bazy
  7. Dobre praktyki
  8. Gdy plugin nie łączy się z bazą

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#

  1. 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.
  2. Kliknij New Database.
  3. 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.
  4. 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.
  5. 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#

  1. Na liście baz kliknij przycisk z ikoną oka przy wybranej bazie.
  2. Otworzy się okno Database connection details z polami:

    Pole w paneluCo to jestGdzie to wpisać
    Endpointadres serwera bazy i port po dwukropkuw konfiguracji dodatku jako host i port
    Connections fromskąd wolno się łączyćnigdzie, to tylko informacja
    Usernamenazwa użytkownika bazyjako użytkownika
    Passwordhasło do bazyjako hasło
    JDBC Connection Stringgotowy adres połączenia dla programów w Javietam, gdzie dodatek prosi o adres JDBC
  3. Kliknij pole Endpoint, Username, Password albo JDBC Connection String, żeby skopiować jego zawartość.
  4. 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)#

  1. Zatrzymaj serwer.
  2. W zakładce Pliki otwórz plugins/LuckPerms/config.yml i ustaw:

    YAML
    storage-method: MySQL
    
    data:
      address: adres:3306
      database: s12_luckperms
      username: uzytkownik_z_panelu
      password: 'haslo_z_panelu'
  3. 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:

JavaScript
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:

  1. Kliknij przycisk z ikoną oka przy bazie.
  2. W oknie Database connection details kliknij Zmień hasło. Panel wygeneruje nowe hasło.
  3. 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ą.

  1. Kliknij czerwoną ikonę kosza przy bazie.
  2. W oknie Confirm database deletion wpisz w polu Potwierdź nazwę bazy nazwę bazy.
  3. 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 export w 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:

  1. adres i port, przepisane z pola Endpoint, a nie localhost,
  2. pełną nazwę bazy, razem z przedrostkiem, oraz nazwę użytkownika,
  3. hasło, bez spacji na początku i końcu, i to, czy nie zmieniłeś go niedawno przyciskiem Zmień hasło,
  4. 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),
  5. komunikat w Konsoli, np. Access denied (złe hasło albo użytkownik) albo Unknown 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.