Każdy framework RP na FiveM, czy to ESX, QBCore czy Qbox, przechowuje dane graczy w bazie MySQL lub MariaDB. Bez bazy danych framework nie działa: brak ekwipunku, brak pojazdów, brak pieniędzy, brak prac. oxmysql to standardowy connector łączący framework z bazą danych.
Krok 1: tworzenie bazy danych
Przy wszystkich pakietach FiveM HostValues baza danych jest w cenie. W panelu gry w zakładce Databases znajdziesz opcję utworzenia nowej bazy danych. Po utworzeniu zobaczysz:
- Host: adres serwera bazy danych (zwykle localhost lub wewnętrzny IP)
- Port: domyślnie 3306
- Nazwa bazy danych: nazwa, którą wybrałeś
- Nazwa użytkownika: automatycznie wygenerowana
- Hasło: kliknij ikonę oka, aby je wyświetlić
Krok 2: instalacja oxmysql
Pobierz oxmysql z GitHub. Rozpakuj i prześlij folder do resources/[ox]/oxmysql/. Dodaj w server.cfg:
ensure oxmysql
Umieść to powyżej wszystkich zasobów korzystających z bazy danych.
Krok 3: ustawienie stringa połączenia
Dodaj w server.cfg string połączenia:
set mysql_connection_string "mysql://uzytkownik:haslo@host:3306/nazwa_bazy?charset=utf8mb4"
Zastąp wartości danymi z kroku 1. Zwróć uwagę na znaki specjalne w haśle: jeśli zawiera @ lub #, zakoduj je w formacie URL (na przykład %40 dla @).
Krok 4: import SQL frameworka
Każdy framework ma pliki SQL, które tworzą tabele bazy danych. Otwórz phpMyAdmin przez panel gry (przycisk obok bazy danych), kliknij „Importuj" i prześlij plik SQL swojego frameworka:
- ESX:
es_extended.sql - QBCore:
qb-core.sql - Qbox: SQL z recipe lub folderu qbx_core
Większość skryptów, które dodasz później, również ma własne pliki SQL. Importuj je w ten sam sposób.
Krok 5: testowanie
Uruchom serwer. W konsoli powinien pojawić się komunikat:
[oxmysql] Database server connection established
Jeśli widzisz „connection refused" lub „access denied", sprawdź string połączenia pod kątem literówek, upewnij się, że baza danych została utworzona i że hasło jest poprawne.
Najczęstsze problemy
- ER_NOT_SUPPORTED_AUTH_MODE: Twój serwer MySQL wymaga innego mechanizmu uwierzytelniania. Przy MariaDB zdarza się to rzadko; przy MySQL 8+ musisz ustawić
mysql_native_password. - Tabele już istnieją: importujesz SQL po raz drugi. Nie szkodzi, import nie nadpisze niczego, jeśli tabele już istnieją.
- Błędy charset: nie zapomnij o
?charset=utf8mb4w stringu połączenia. Bez tego parametru emoji i znaki specjalne nie będą poprawnie zapisywane.
Czy mogę użyć SQLite zamiast MySQL?
Technicznie tak, ale żaden framework RP nie obsługuje tego domyślnie. MySQL lub MariaDB to wymóg. W HostValues baza danych jest dołączona do każdego pakietu FiveM, więc nie ma powodu, by używać SQLite.
Jak zrobić kopię zapasową bazy danych?
Przez phpMyAdmin: wybierz bazę danych, kliknij „Eksportuj", wybierz „Szybko" i „SQL", i pobierz plik. Zachowaj go osobno. Przy czystej instalacji importujesz ten plik z powrotem.
Czy mogę przeglądać bazę danych, gdy serwer działa?
Tak. phpMyAdmin pokazuje dane na żywo. Możesz przeglądać dane graczy, pojazdy i ekwipunki, a w razie potrzeby ręcznie je modyfikować. Bądź ostrożny: błąd w bazie danych może uszkodzić dane graczy.
Baza danych jest wliczona we wszystkie pakiety FiveM. W razie pytań dotyczących konfiguracji bazy danych nasz zespół wsparcia chętnie pomoże.