ESX og QBCore gemmer alt i MySQL: karakterer, inventar, penge, køretøjer og jobs. Uden en database, der virker, starter de slet ikke. Heldigvis koger hele forbindelsen ned til én linje i server.cfg, og den bygges af fem værdier, som panelet allerede viser dig. Her ser du, hvordan du udfylder den og får importeret frameworkets tabeller.
Det skal du bruge
- Din FiveM-server i spilpanelet
- oxmysql i mappen
resources(ESX og QBCore leveres begge med den eller angiver den som krav) - SQL-filerne fra dit framework, hvis du ikke installerer via en txAdmin-recipe
Trin 1: opret databasen
Åbn din server i spilpanelet, og klik på Databaser i menuen. Klik på Ny database, skriv et kort navn som qbcore eller esx (kun bogstaver, tal og understregningstegn), og bekræft.
Panelet sætter et præfiks foran, så qbcore ender som noget i stil med s1234_qbcore. Databasebrugeren får samme præfiks, og derfor ligner de to hinanden til forveksling. Det er en klassisk fejl at bytte rundt på dem.
Ser du kun Databaser er ikke tilgængelige, har serveren ingen databaseplads. Skriv til os via supportsiden, så ordner vi det.
Trin 2: sæt panelets felter ind i forbindelsesstrengen
Hver database på listen viser fem værdier med hver sin kopiknap. Her kan du se, hvor hver enkelt skal stå:
| Felt i panelet | I URI-formen | I key=value-formen |
|---|---|---|
| Databasenavn | efter / |
database= |
| Vært | mellem @ og : |
host= |
| Port | efter : |
port= |
| Brugernavn | før : |
user= |
| Adgangskode | mellem : og @ |
password= |
Med disse fire regler undgår du problemer:
- Vært er kun adressen. Panelet viser porten i sit eget felt. Indsæt ikke
adresse:3306på værtens plads, for så står porten to gange i strengen. - Aldrig
localhosteller127.0.0.1. Din database kører på vores separate databaseserver og ikke inde i spilserveren. Guides brugerlocalhost, fordi de går ud fra, at MySQL kører på samme pc som FXServer. - Aldrig
root. Kun det brugernavn, panelet viser, kan logge ind. - Brug det præcise navn med præfiks. Installationsprogrammer foreslår navne som
es_extendedellerqbcore, og de findes ikke på din konto. Kopiér Databasenavn fra panelet.
Trin 3: tilføj linjen i server.cfg
Den hurtige vej
På en FiveM-server viser fanen Databaser et ekstra kort under listen med titlen oxmysql forbindelsesstreng. Det indeholder den færdige linje set mysql_connection_string "..." til din første database, i det format, som din adgangskode sikkert kan stå i. Brug kortets kopiknap: den kopierer den rigtige adgangskode, også mens skærmen kun viser prikker.
Skriv den selv
oxmysql forstår to formater. URI-formen ser sådan ud:
set mysql_connection_string "mysql://BRUGERNAVN:ADGANGSKODE@VÆRT:PORT/DATABASE?charset=utf8mb4"
key=value-formen indeholder præcis de samme oplysninger:
set mysql_connection_string "user=BRUGERNAVN;password=ADGANGSKODE;host=VÆRT;port=PORT;database=DATABASE;charset=utf8mb4"
Erstat hver pladsholder med den tilsvarende værdi fra tabellen. charset=utf8mb4 er valgfri, men behold den, så spillernavne med specialtegn som æ, ø og å gemmes korrekt.
Hvor server.cfg ligger, og hvor linjen skal stå
Åbn fanen Filer. Med standardopsætningen ligger server.cfg i hovedmappen ved siden af mappen resources, og serveren indlæser den ved hver start.
Rækkefølgen betyder noget. oxmysql læser indstillingen én gang, i det øjeblik den starter, så filen skal se sådan ud oppefra og ned:
set mysql_connection_string "..."
ensure oxmysql
ensure es_extended
Først forbindelsesstrengen, så ensure oxmysql og derefter dit framework (qb-core i stedet for es_extended på QBCore). Står linjen under ensure oxmysql, bliver den læst for sent.
Har du slået txAdmin til med knappen Aktivér txAdmin på din serverside, indlæser serveren ikke længere den fil. txAdmin starter den i stedet med server.cfg fra sin egen server data-mappe. Klik på Åbn txAdmin, og tilføj linjen i dens CFG Editor, ellers når ændringen aldrig frem til den kørende server.
Trin 4: genstart og tjek konsollen
Genstart serveren fra panelet. En fuld genstart er nødvendig, fordi indstillingen kun læses, når serveren starter. Det er ikke nok at genstarte oxmysql-ressourcen alene.
Hold øje med fanen Konsol, mens serveren starter op. Når det virker, melder oxmysql, at forbindelsen er oprettet, sammen med databaseserverens version, og dit framework indlæses uden SQL-fejl. Når det ikke virker, dukker fejlen op inden for få sekunder og svarer til et af tilfældene nedenfor.
Import af SQL-filerne til ESX eller QBCore
Frameworket forventer, at dets tabeller findes, så SQL-filerne skal importeres én gang.
Med en txAdmin-recipe. txAdmins recipe deployer beder om databaseoplysninger undervejs. Indtast vært, port, brugernavn og adgangskode fra panelet, og erstat det foreslåede databasenavn med dit navn med præfiks. Derefter kører deployeren SQL-filerne og skriver forbindelsesstrengen for dig.
Manuelt. Panelet har ikke sit eget værktøj til SQL-import, så brug en MySQL-klient på din egen computer. Både HeidiSQL og DBeaver fungerer: opret en MySQL-forbindelse med de fem værdier fra panelet, og kør derefter .sql-filen mod din database. Fra en kommandolinje ser det sådan ud:
mysql -h VÆRT -P PORT -u BRUGERNAVN -p DATABASE < es_extended.sql
Åbn SQL-filen i en teksteditor, før du importerer. Nogle frameworkfiler starter med linjerne CREATE DATABASE og USE, der peger på deres eget databasenavn. Slet de linjer, ellers forsøger importen at nå en database, du ikke har adgang til, og fejler.
Importér frameworkets hovedfil først og derefter den SQL, der følger med hver ekstra ressource.
Fejlfinding
Access denied for user. Brugernavnet eller adgangskoden passer ikke. Som regel skyldes det en tastefejl, en adgangskode, der er skiftet med Ny adgangskode, efter at du skrev konfigurationen, eller specialtegn, der ødelægger linjen. Alle varianter gennemgås i sådan retter du oxmysql-fejlen Access denied.
connect ECONNREFUSED eller ETIMEDOUT. oxmysql kan ikke nå databasen, så det er et adresseproblem og ikke et adgangskodeproblem. Brug værten fra panelet i stedet for localhost eller 127.0.0.1, og tjek, at porten er rigtig og kun står der én gang.
Unknown database. Databasenavnet mangler sit præfiks, eller brugernavnet er havnet på databasenavnets plads. Kopiér Databasenavn fra panelet igen.
Specialtegn i adgangskoden. Mange guides siger, at symboler skal URL-kodes i URI-formen, så @ bliver til %40. Ikke med oxmysql: den afkoder dem ikke, så %40 sendes som en del af adgangskoden, og login fejler. Indsæt adgangskoden præcis som den står, eller kopiér linjen fra kortet, som allerede bruger et format, din adgangskode passer ind i. Viser kortet en advarsel i stedet, så klik på Generér ny adgangskode.
Table doesn't exist. oxmysql får forbindelse, men ESX eller QBCore melder om manglende tabeller. SQL-filerne er ikke importeret, eller de er havnet i en anden database. Importér dem som beskrevet ovenfor.
Det virkede i går. Nogen har klikket på Ny adgangskode ved databasen. Den gamle adgangskode holder op med at virke med det samme, så kopiér den nye linje ind i server.cfg, og genstart.
Sidder du stadig fast? Opret en sag via supportsiden med navnet på din server og fejlen fra konsollen, uden adgangskoden. Har du ikke en server endnu? Se vores FiveM-serverhosting.