Database
Každý RP framework ukládá hráče, vozidla a inventář do MySQL databáze. Databázi dostaneš k serveru automaticky.
Přístupové údaje
Najdeš je v Pterodactylu v záložce Databáze.
| Pole | Příklad |
|---|---|
| Host | mysql.blazehost.cz |
| Port | 3306 |
| Databáze | s12345_fivem |
| Uživatel | s12345_user |
Připojovací řetězec
FiveM používá mysql_connection_string v server.cfg:
server.cfg
set mysql_connection_string "mysql://s12345_user:[email protected]/s12345_fivem?charset=utf8mb4"Vždy použij charset=utf8mb4. Bez něj se v databázi rozbijí česká diakritika
i emoji ve jménech hráčů.
Import SQL souboru
Skripty často dodávají .sql soubor, který je nutné naimportovat.
Použití v resource
Moderní skripty používají oxmysql:
server.lua
local identifier = 'license:abc123'
MySQL.query('SELECT * FROM users WHERE identifier = ?', { identifier },
function(result)
if result[1] then
print(('Hrac %s ma %d penez'):format(identifier, result[1].money))
end
end
)Používej prepared statements se zástupným ?. Vkládání proměnných přímo
do SQL řetězce otevírá cestu k SQL injection.
Záloha databáze
mysqldump -h mysql.blazehost.cz -u s12345_user -p s12345_fivem > zaloha.sqlAutomatické zálohy serveru zahrnují i databázi, ale jen jednou denně. Před importem cizího SQL si vždy udělej ruční dump — špatný import se špatně vrací zpět.
Časté problémy
| Chyba | Řešení |
|---|---|
Access denied for user | Špatné heslo nebo host v connection stringu |
Unknown database | Překlep v názvu databáze |
Too many connections | Skript neuzavírá spojení, restartuj server |
| Otazníky místo háčků | Chybí charset=utf8mb4 |
Tipy
- Nepouštěj
DROP TABLEna produkci bez zálohy. - Sleduj velikost databáze. Logovací tabulky rostou nejrychleji.
Poznámka
Vzdálený přístup k databázi je povolen.