Een bot die dingen onthoudt, zoals levels, waarschuwingen of instellingen per server, heeft een plek nodig om ze te bewaren. Je botpakket bevat één database. Je kunt ook een bestand zoals SQLite gebruiken, dat geen setup nodig heeft maar lastiger te delen is tussen twee bots.
De database aanmaken
- Open je server in het panel en klik in het linkermenu op Databases.
- Klik op Nieuwe database, kies het type, voeg een weergavenaam toe zoals
bot-dataen klik op Database aanmaken. - Klik op de database om de host, poort, databasenaam, gebruiker en wachtwoord te zien. Zie Databases gebruiken met je server voor de volledige pagina.
Houd de gegevens uit je code
Zet de verbindingsgegevens in een bestand dat je code leest, zoals .env, en commit dat bestand niet naar git. Maak in Files het bestand .env aan:
DB_HOST=your-host
DB_PORT=3306
DB_NAME=your-database
DB_USER=your-user
DB_PASSWORD=your-password
Node.js (mysql2 en dotenv)
Voeg mysql2 en dotenv toe aan package.json en gebruik dan:
require('dotenv').config();
const mysql = require('mysql2/promise');
const pool = mysql.createPool({
host: process.env.DB_HOST,
port: Number(process.env.DB_PORT),
database: process.env.DB_NAME,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
});
async function main() {
await pool.query('CREATE TABLE IF NOT EXISTS warnings (id INT AUTO_INCREMENT PRIMARY KEY, user_id VARCHAR(32), reason TEXT)');
const [rows] = await pool.query('SELECT COUNT(*) AS n FROM warnings');
console.log('warnings stored:', rows[0].n);
}
main();
Python (aiomysql)
Voeg aiomysql en python-dotenv toe aan requirements.txt en gebruik dan:
import os
import aiomysql
from dotenv import load_dotenv
load_dotenv()
async def get_pool():
return await aiomysql.create_pool(
host=os.environ["DB_HOST"], port=int(os.environ["DB_PORT"]),
db=os.environ["DB_NAME"], user=os.environ["DB_USER"],
password=os.environ["DB_PASSWORD"], autocommit=True,
)
Goed om te weten
- Gebruik een verbindingspool, geen nieuwe verbinding voor elk commando.
- Geef invoer van gebruikers altijd door als queryparameters, nooit door tekst aan elkaar te plakken in de SQL.
- Neem de database mee in je backups: Backups maken, downloaden en herstellen.
- Kan de bot niet verbinden, vergelijk dan de host en poort met de databasepagina en controleer dat het wachtwoord geen losse spatie bevat.





