ESX och QBCore sparar allt i MySQL: karaktärer, inventarier, pengar, fordon och jobb. Utan en fungerande databas startar de inte alls. Den goda nyheten är att hela anslutningen handlar om en enda rad i server.cfg, och den byggs av fem värden som panelen redan visar dig. Så här fyller du i den och får in ramverkets tabeller.
Det här behöver du
- Din FiveM-server i spelpanelen
- oxmysql i mappen
resources(ESX och QBCore har den antingen med sig eller kräver den) - SQL-filerna som följde med ditt ramverk, om du inte installerar via ett txAdmin-recept
Steg 1: skapa databasen
Öppna din server i spelpanelen och klicka på Databaser i menyn. Klicka på Ny databas, skriv ett kort namn som qbcore eller esx (bara bokstäver, siffror och understreck) och bekräfta.
Panelen lägger till ett prefix, så qbcore blir något i stil med s1234_qbcore. Databasanvändaren får samma prefix, och därför är de två nästan identiska. Att blanda ihop dem är ett klassiskt misstag.
Ser du bara Databaser inte tillgängliga har servern ingen databasplats. Hör av dig via supportsidan, så löser vi det.
Steg 2: koppla panelens fält till anslutningssträngen
Varje databas i listan visar fem värden med var sin kopieringsknapp. Här ser du var vart och ett av dem ska stå:
| Fält i panelen | I URI-formen | I key=value-formen |
|---|---|---|
| Databasnamn | efter / |
database= |
| Värd | mellan @ och : |
host= |
| Port | efter : |
port= |
| Användarnamn | före : |
user= |
| Lösenord | mellan : och @ |
password= |
Fyra regler håller dig borta från problem:
- Värd är bara adressen. Panelen visar porten i ett eget fält. Klistra inte in
adress:3306där värden ska stå, då hamnar porten två gånger i strängen. - Aldrig
localhosteller127.0.0.1. Din databas körs på vår separata databasserver och inte inuti spelservern. Guider använderlocalhosteftersom de utgår från att MySQL körs på samma dator som FXServer. - Aldrig
root. Bara användarnamnet som panelen visar kan logga in. - Använd det exakta namnet med prefix. Installationsprogram föreslår namn som
es_extendedellerqbcore, som inte finns på ditt konto. Kopiera Databasnamn från panelen.
Steg 3: lägg in raden i server.cfg
Det snabba sättet
På en FiveM-server visar fliken Databaser ett extra kort under listan som heter oxmysql anslutningssträng. Där finns den färdiga raden set mysql_connection_string "..." för din första databas, i det format som säkert klarar ditt lösenord. Använd kortets kopieringsknapp: den kopierar det riktiga lösenordet även när skärmen bara visar prickar.
Skriva den för hand
oxmysql accepterar två format. URI-formen ser ut så här:
set mysql_connection_string "mysql://ANVÄNDARNAMN:LÖSENORD@VÄRD:PORT/DATABAS?charset=utf8mb4"
Formen key=value innehåller exakt samma uppgifter:
set mysql_connection_string "user=ANVÄNDARNAMN;password=LÖSENORD;host=VÄRD;port=PORT;database=DATABAS;charset=utf8mb4"
Byt ut varje platshållare mot motsvarande värde i tabellen. charset=utf8mb4 är valfritt, men behåll det så att spelarnamn med å, ä, ö och andra specialtecken sparas rätt.
Var server.cfg ligger och var raden ska stå
Öppna fliken Filer. Med standardinställningen ligger server.cfg i huvudmappen bredvid mappen resources, och servern läser in den vid varje start.
Ordningen spelar roll. oxmysql läser inställningen en gång, i samma ögonblick som den startar, så filen ska se ut så här uppifrån och ned:
set mysql_connection_string "..."
ensure oxmysql
ensure es_extended
Först anslutningssträngen, sedan ensure oxmysql och därefter ditt ramverk (qb-core i stället för es_extended på QBCore). Står raden under ensure oxmysql läses den för sent.
Har du slagit på txAdmin med knappen Aktivera txAdmin på din serversida läser servern inte längre in den filen. txAdmin startar den i stället med server.cfg från sin egen mapp för serverdata. Klicka på Öppna txAdmin och lägg in raden i dess CFG Editor, annars når ändringen aldrig den körande servern.
Steg 4: starta om och kolla konsolen
Starta om servern från panelen. En fullständig omstart krävs, eftersom inställningen bara läses när servern startar. Det räcker inte att bara starta om oxmysql-resursen.
Håll koll på fliken Konsol medan den startar. När allt fungerar meddelar oxmysql att anslutningen är upprättad, tillsammans med databasserverns version, och ditt ramverk laddas utan SQL-fel. När det inte fungerar dyker felet upp inom några sekunder och motsvarar något av fallen längre ned.
Importera SQL-filerna för ESX eller QBCore
Ramverket förutsätter att dess tabeller redan finns, så SQL-filerna måste importeras en gång.
Med ett txAdmin-recept. txAdmins recipe deployer frågar efter databasuppgifter under installationen. Fyll i värd, port, användarnamn och lösenord från panelen, och byt ut det föreslagna databasnamnet mot ditt namn med prefix. Sedan kör deployern SQL-filerna och skriver anslutningssträngen åt dig.
För hand. Panelen har inget eget verktyg för SQL-import, så använd en MySQL-klient på din egen dator. Både HeidiSQL och DBeaver fungerar: skapa en MySQL-anslutning med de fem värdena från panelen och kör sedan .sql-filen mot din databas. Från en kommandorad ser det ut så här:
mysql -h VÄRD -P PORT -u ANVÄNDARNAMN -p DATABAS < es_extended.sql
Öppna SQL-filen i en textredigerare innan du importerar. Vissa ramverksfiler börjar med raderna CREATE DATABASE och USE som pekar på ett eget databasnamn. Ta bort de raderna, annars försöker importen nå en databas du inte har åtkomst till och misslyckas.
Importera ramverkets huvudfil först och därefter SQL-filerna som följer med varje extra resurs.
Felsökning
Access denied for user. Användarnamnet eller lösenordet stämmer inte. Oftast beror det på ett skrivfel, ett lösenord som bytts med Nytt lösenord efter att du skrev konfigurationen, eller specialtecken som förstör raden. Alla varianter tas upp i guiden Åtgärda oxmysql Access denied.
connect ECONNREFUSED eller ETIMEDOUT. oxmysql når inte databasen, så det är ett adressproblem och inte ett lösenordsproblem. Använd värden från panelen i stället för localhost eller 127.0.0.1, och kontrollera att porten stämmer och bara står med en gång.
Unknown database. Databasnamnet saknar sitt prefix, eller så har användarnamnet hamnat där databasnamnet ska stå. Kopiera Databasnamn från panelen igen.
Specialtecken i lösenordet. Många guider säger att symboler ska URL-kodas i URI-formen, så att @ blir %40. Inte med oxmysql: den avkodar dem inte, så %40 skickas som en del av lösenordet och inloggningen misslyckas. Klistra in lösenordet exakt som det visas, eller kopiera raden från kortet, som redan använder ett format som ditt lösenord passar i. Visar kortet i stället en varning klickar du på Generera nytt lösenord.
Table doesn't exist. oxmysql ansluter, men ESX eller QBCore rapporterar tabeller som saknas. SQL-filerna har inte importerats, eller så hamnade de i en annan databas. Importera dem enligt beskrivningen ovan.
Det fungerade i går. Någon har klickat på Nytt lösenord för databasen. Det gamla lösenordet slutar fungera direkt, så kopiera in den nya raden i server.cfg och starta om.
Sitter du fortfarande fast? Skapa ett ärende via supportsidan med serverns namn och felet från konsolen, utan lösenordet. Letar du efter en server? Kolla in vår FiveM-serverhosting.