Game database unreachable or refused
ETIMEDOUT, ECONNREFUSED, Access denied, table not found, framework not detected, missing CREATE right: the connection test errors and their fix.
Updated on Sep 30, 2026, 9:00 a.m.
In short. The Test button in Server → Database says exactly what is wrong. Nine times out of ten, it is the host: inside a container, localhost means the container itself.
Test messages #
| Message | Cause | Fix |
|---|---|---|
| "Game database not configured (…)" | The host, user or database is not filled in | Fill these three fields in Server → Database (the framework can stay on Automatic) |
connect ETIMEDOUT or ECONNREFUSED | Agora cannot reach the MySQL host | Use the machine's IP, the Docker service name or the public IP; check that MySQL does not only listen on 127.0.0.1 (bind-address) and that port 3306 is open to Agora's IP |
Access denied for user 'agora'@'…' | The user may not connect from this IP | Allow the IP shown in the message (CREATE USER then GRANT) |
| "Table players not found (wrong framework?)" | The fixed framework does not match | ESX reads users, QBCore and Qbox read players: set the dropdown back to Automatic (or pick the right one), save, then Test |
| "Game server framework not detected: …" | Automatic mode, and detection could not decide safely | Follow the reason given: right database, framework SQL imported, game server started with the resource. Or fix the framework. See Supported frameworks |
| "… Framework: QBox (automatic, from the database tables)." | This is not an error: successful test on Automatic | Nothing to fix: it is the framework in use and where it comes from |
| "The MySQL user must be able to create tables (CREATE)" | The CREATE right is missing | Grant CREATE, INDEX and ALTER on the database |
| "Vehicle table not found in the game database." | Neither player_vehicles nor owned_vehicles | Plates and dealership unavailable: check the framework and your garage script |
| "Discord: no column…, for information" | This is not an error | Nothing to fix: characters are found through the linked license |
| "Database found (…) but on 127.0.0.1" | Detection found an address local to the game server | Enter the address reachable from Agora |
The connection timeout is 5 seconds: beyond that, Agora gives up rather than keep a page waiting.
Grant the right privileges #
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER
ON `your_database`.* TO 'agora'@'203.0.113.10';
FLUSH PRIVILEGES;When the game server is off #
- Drop-down lists fed by the database (garages, jobs, columns) turn back into free text: nothing is blocked.
- The browser MDT follows the Server unreachable policy in MDT → Settings: kept open (default) or suspended.
- With the framework on Automatic, Agora keeps the last detected framework, or failing that the one the resource reported. If it has neither yet, the screen shows "Not detected: the game server database is not responding…": bring the database back, detection runs again by itself.
Other symptoms #
| Symptom | Cause |
|---|---|
| "No character found for your account" | The player has not linked their game: see Link your game |
| Not all jobs show up | Catalogue "deduced from characters": connect the panel or SFTP |
| "Illegal mix of collations" | Two tables with different collations: align on utf8mb4_unicode_ci |
agora_* tables missing | The MDT was never opened, or the CREATE right is missing |
| "Could not find where player money is stored in this database." (dealership) | Agora recognises neither players.money, nor users.accounts, nor users.money / users.bank: check the framework; with a home-made economy, the dealership cannot work |
Was this article helpful?
Related articles
- Connect the game server databaseThe MDT reads your FiveM server's real database: create a dedicated MySQL user, reachable from Agora, then fill in Server → Database.
- Supported frameworks: ESX, QBCore, QboxAutomatic or fixed framework, what Agora reads in each framework, how a player is recognised, and the start order to follow in server.cfg.
- Configure the MDT: services, jobs and permissionsPut each in-game job in a service, then tick job by job or rank by rank what it can do; off-game access is the most important permission.