QBCore, ESX i Qbox przechowują graczy, ekwipunki i pojazdy w bazie danych MySQL/MariaDB. Instalujesz ją raz, na tym samym serwerze VPS, a FiveM łączy się z nią przez localhost.
Windows
- Pobierz instalator MSI MariaDB (wersję LTS) ze strony
mariadb.org/download. - Zainstaluj go i ustaw długie hasło roota. Pozostaw zaznaczoną opcję Install as service, aby serwer bazy danych uruchamiał się razem z Windows.
- Instalator zawiera HeidiSQL, program z interfejsem graficznym do przeglądania i edycji bazy danych.
Linux (Ubuntu / Debian)
apt install -y mariadb-server
mariadb-secure-installation
Odpowiedz na pytania: usuń anonimowych użytkowników i testową bazę danych.
Utwórz bazę danych i jej użytkownika
Nie używaj konta root dla FiveM. Zaloguj się do MariaDB (w Windows przez HeidiSQL lub poleceniem mysql -u root -p; w Linuksie poleceniem mariadb) i wykonaj:
CREATE DATABASE fivem CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'fivem'@'localhost' IDENTIFIED BY 'DLUGIE_HASLO';
GRANT ALL PRIVILEGES ON fivem.* TO 'fivem'@'localhost';
FLUSH PRIVILEGES;
To właśnie te dane, o które poprosi txAdmin przy wdrażaniu przepisu: baza danych fivem, użytkownik fivem i jego hasło.
Ciąg połączenia (oxmysql)
txAdmin zapisuje go w Twoim pliku server.cfg. Jeśli wpisujesz go ręcznie, wygląda tak:
set mysql_connection_string "mysql://fivem:DLUGIE_HASLO@localhost/fivem?charset=utf8mb4"
Linia ensure oxmysql musi się znaleźć przed frameworkiem w kolejności ładowania. Jeśli Twoje hasło zawiera symbole takie jak @ czy #, zmień je na hasło bez nich: psują ciąg połączenia.
Nie otwieraj portu 3306
Z bazy danych korzysta tylko serwer FiveM, który działa na tej samej maszynie. Otwarcie portu 3306 na internet to zaproszenie do ataku. Aby zarządzać bazą ze swojego komputera, użyj HeidiSQL z opcją tunelu SSH (w Linuksie) albo połącz się przez Pulpit zdalny (w Windows).
Dwa najczęstsze błędy
| Błąd w konsoli | Co oznacza |
|---|---|
ECONNREFUSED 127.0.0.1:3306 | Serwer MariaDB nie działa. W Windows sprawdź usługę w services.msc; w Linuksie wykonaj systemctl status mariadb. |
Access denied for user | Błędnie wpisany użytkownik, hasło lub nazwa bazy danych w ciągu połączenia. |
I rób kopie zapasowe: codzienny zrzut bazy danych uratuje Cię, jeśli jakiś skrypt usunie ekwipunki graczy.