> ## Documentation Index
> Fetch the complete documentation index at: https://help.freakhosting.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Manage Databases

> Create and manage MySQL databases for your FREAKHOSTING game server to support plugins, mods, and applications that require persistent structured data storage.

## Databases for Your Game Server

Some game server plugins and mods need more than flat files to store their data — they need a proper database. Economy systems, web-based maps, permissions managers, logging plugins, and many other tools rely on MySQL databases to store and retrieve data efficiently. The FREAKHOSTING Game Panel at **games.freakhosting.com** lets you create and manage databases directly from the **Management > Databases** section, giving your plugins the storage backend they need without any external setup.

Not every game server needs a database, and not every plan supports them. This guide covers when you need one, how to create one, and how to connect your plugins to it.

<CardGroup cols={2}>
  <Card title="Difficulty" icon="gauge">
    Intermediate
  </Card>

  <Card title="Time" icon="clock">
    5 Minutes
  </Card>
</CardGroup>

***

## When Does a Game Server Need a Database?

Most game servers run perfectly fine without a database — world data, player inventories, and server configs are stored as files on disk. But the moment you start adding plugins or mods that need to store structured data, search through records quickly, or share data between multiple servers, a database becomes essential.

<CardGroup cols={2}>
  <Card title="You Need a Database For" icon="check">
    Economy plugins (EssentialsX Economy, CMI). Web-based live maps (DynMap, BlueMap with MySQL storage). Permissions plugins (LuckPerms with MySQL backend). Logging and anti-grief tools (CoreProtect). Cross-server data sharing (BungeeCord networks). Player statistics and leaderboard plugins.
  </Card>

  <Card title="You Don't Need a Database For" icon="xmark">
    Basic Minecraft survival or creative servers with no plugins. Vanilla game servers (Terraria, Valheim, Factorio). Simple plugin setups that use file-based storage (YAML, JSON). Voice servers like TeamSpeak or Mumble.
  </Card>
</CardGroup>

<Info>
  Not all game server types support databases on the FREAKHOSTING platform. If your server does not support databases, you will see the message: **"Databases cannot be created for this server."** This is expected for game types that do not typically require database access. If you believe your server should have database support, contact our support team.
</Info>

***

## Real-World Example: Setting Up DynMap with a Database

Here is a practical scenario:

> You are running a Minecraft server and want to add DynMap — a plugin that generates a live, interactive web map of your world. DynMap can use flat files, but on a large world with hundreds of players, that approach gets slow. Switching DynMap to a MySQL database dramatically improves map rendering performance and tile storage.

To make this work, you need to: create a database in the Game Panel, copy the connection details (host, port, database name, username, password), and paste them into DynMap's configuration file. That is exactly what this guide walks you through.

***

## Accessing the Databases Section

<Steps>
  <Step title="Log In to the Game Panel">
    Navigate to [games.freakhosting.com](https://games.freakhosting.com) and sign in with your credentials.
  </Step>

  <Step title="Select Your Server">
    From the server list or the server selector dropdown, choose the game server you want to manage databases for.
  </Step>

  <Step title="Open Management > Databases">
    In the left sidebar, click **Management**, then select **Databases**. You will see the **Manage databases** heading with a table showing your existing databases (or an empty state if none exist yet).
  </Step>
</Steps>

The Databases table displays the following columns for each database:

| Column       | What It Shows                                                                                     |
| ------------ | ------------------------------------------------------------------------------------------------- |
| **Name**     | The database name you chose during creation. This is what you enter in your plugin configs.       |
| **Server**   | The database server/host your database is running on.                                             |
| **Endpoint** | The full connection endpoint (host and port) for external connections.                            |
| **Size**     | The current storage size of the database. Starts at 0 bytes and grows as your plugins write data. |

***

## Creating a New Database

<Steps>
  <Step title="Click New Database">
    On the Databases page, click the **New Database** button. A creation form will appear.
  </Step>

  <Step title="Enter a Database Name">
    Choose a descriptive name for your database. Keep it relevant to its purpose — something like "dynmap", "luckperms", "coreprotect", or "economy". This name is what your plugins will reference in their configuration files.

    <Tip>
      If you plan to use multiple plugins that each need their own database, create separate databases for each one rather than sharing a single database. This keeps things organized and makes troubleshooting easier if a plugin misbehaves.
    </Tip>
  </Step>

  <Step title="Confirm Creation">
    Submit the form to create the database. It will appear immediately in the Databases table with its **Name**, **Server**, **Endpoint**, and initial **Size**.
  </Step>
</Steps>

***

## Viewing Connection Details

Once your database is created, you need its connection details to configure your plugins. Each database entry in the table provides everything you need:

<CardGroup cols={2}>
  <Card title="Host and Port" icon="server">
    Found in the **Server** and **Endpoint** columns. The endpoint gives you the full host:port combination. This is what you enter as the "host" or "address" in your plugin configuration files.
  </Card>

  <Card title="Database Name and Credentials" icon="key">
    Click on a database entry to reveal the full connection details, including the **database name**, **username**, and **password**. Copy these values exactly as shown — they are case-sensitive.
  </Card>
</CardGroup>

Here is how those details map to a typical plugin configuration:

```yaml theme={null}
# Example: LuckPerms MySQL configuration
storage-method: MySQL
data:
  address: "your-endpoint-here"
  database: "your-database-name"
  username: "your-username"
  password: "your-password"
```

<Warning>
  Never share your database credentials publicly — in screenshots, forum posts, or Discord messages. Anyone with these details can connect to and modify your database. If you accidentally expose them, rotate your password immediately using the steps below.
</Warning>

***

## Rotating Your Database Password

If your database password has been compromised, shared accidentally, or you simply want to refresh it for security, each database includes a **rotate password** button.

<Steps>
  <Step title="Find the Database">
    In the Databases table, locate the database whose password you want to change.
  </Step>

  <Step title="Click Rotate Password">
    Click the **rotate password** button for that database. A new password is generated immediately.
  </Step>

  <Step title="Update Your Plugin Configurations">
    After rotating the password, every plugin that connects to this database needs to be updated with the new password. Open each plugin's configuration file, replace the old password with the new one, and restart your server for the changes to take effect.

    <Warning>
      Rotating the password immediately invalidates the old one. If you rotate the password without updating your plugin configs first, those plugins will fail to connect to the database on the next server restart. Have your config files ready to edit before clicking rotate.
    </Warning>
  </Step>
</Steps>

***

## Deleting a Database

If a database is no longer needed — maybe you removed the plugin that used it, or you are cleaning up after testing — each database entry has a **delete** button.

<Steps>
  <Step title="Confirm You No Longer Need It">
    Before deleting, make sure no active plugins or mods are using this database. Check your server's plugin configuration files to be certain.
  </Step>

  <Step title="Click Delete">
    Click the **delete** button on the database row and confirm the deletion when prompted.
  </Step>
</Steps>

<Warning>
  Deleting a database is **permanent and irreversible**. All data stored in that database — player balances, map tiles, permission groups, block logs, everything — is gone forever. If there is any chance you might need the data later, export it first using a tool like phpMyAdmin or a plugin's built-in export command before deleting.
</Warning>

***

## Common Database Use Cases

<AccordionGroup>
  <Accordion title="LuckPerms (Permissions)">
    LuckPerms is one of the most popular permissions plugins for Minecraft. While it works with flat files, using a MySQL backend lets you sync permissions across multiple servers in a BungeeCord or Velocity network. Create a database, enter the connection details in LuckPerms' `config.yml` under the `storage-method: MySQL` section, and restart.
  </Accordion>

  <Accordion title="DynMap / BlueMap (Web Maps)">
    Web-based map plugins can use MySQL to store rendered map tiles instead of thousands of individual image files. This significantly improves performance on large worlds. Create a dedicated database, configure the map plugin's storage settings to point to it, and re-render the map.
  </Accordion>

  <Accordion title="CoreProtect (Block Logging)">
    CoreProtect logs every block placement, break, and interaction for anti-grief rollbacks. On active servers, this generates a lot of data — MySQL handles it far better than flat-file SQLite. Create a database, update CoreProtect's `config.yml` with the connection details, and restart.
  </Accordion>

  <Accordion title="Economy Plugins">
    Plugins like EssentialsX Economy or CMI can store player balances in a database. This is especially useful for multi-server networks where you want a shared economy across all connected servers.
  </Accordion>

  <Accordion title="Cross-Server Data (BungeeCord / Velocity Networks)">
    If you run a network of game servers connected through BungeeCord or Velocity, databases are essential for sharing data between them — synchronized inventories, shared permissions, cross-server chat, and unified player stats all require a common database that every server can read and write to.
  </Accordion>
</AccordionGroup>

***

## Troubleshooting Database Connections

<AccordionGroup>
  <Accordion title="Plugin shows 'Connection refused' or 'Cannot connect to database'">
    Double-check the **endpoint** (host and port) in your plugin config. Make sure you are using the exact values from the Game Panel — not `localhost` or `127.0.0.1`, as the database server is not on the same machine as your game server. Also verify the username, password, and database name are correct and have no extra spaces.
  </Accordion>

  <Accordion title="'Access denied' error after password rotation">
    You rotated the database password but forgot to update the plugin configuration. Open the plugin's config file, enter the new password, save, and restart the server.
  </Accordion>

  <Accordion title="Database size keeps growing">
    This is normal for logging plugins like CoreProtect that record every action. Most plugins have a purge or cleanup setting that lets you automatically delete records older than a certain number of days. Check your plugin's documentation for data retention settings.
  </Accordion>

  <Accordion title="'Databases cannot be created for this server' message">
    Your server type or plan does not include database support. This is common for voice servers (TeamSpeak, Mumble), vanilla servers that do not use plugins, and certain game types that have no database integration. If you need database access, contact support to discuss your options.
  </Accordion>
</AccordionGroup>

***

<Note>
  ### Need Extra Help?

  If you encounter any issues, our support team is ready to assist:

  * **Live Chat:** Quick assistance via our website.
  * **Support Ticket:** [Open a Ticket](https://freakhosting.com/clientarea/submitticket.php)
  * **Discord:** [Join our Community](https://discord.gg/freakhosting)
  * **Email:** [support@freakhosting.com](mailto:support@freakhosting.com)
</Note>

<Tip>
  ### Save on Your Hosting

  Ready to spin up a new game server? Use code **KB20** at checkout for **20% off** your first month!
</Tip>

***

<div align="center">
  **Last Updated:** March 2026 | **Game Panel Support:** Database management simplified.
</div>
