Ein Bot, der sich Dinge merkt, etwa Level, Verwarnungen oder Einstellungen pro Server, braucht einen Ort, an dem er sie ablegt. Dein Bot-Tarif enthält eine Datenbank. Du kannst auch eine Datei wie SQLite nutzen, die keine Einrichtung braucht, sich aber schwerer zwischen zwei Bots teilen lässt.
Die Datenbank erstellen
- Öffne deinen Server im Panel und klick im Menü links auf Datenbanken.
- Klick auf Neue Datenbank, wähl den Typ, gib eine Bezeichnung wie
bot-dataein und klick auf Datenbank erstellen. - Klick auf die Datenbank, um Host, Port, Datenbankname, Benutzer und Passwort zu sehen. Die ganze Seite wird in So nutzt du Datenbanken mit deinem Server erklärt.
Halte die Zugangsdaten aus deinem Code heraus
Leg die Verbindungsdaten in eine Datei, die dein Code liest, etwa .env, und committe diese Datei nicht in Git. Erstell in Files die Datei .env:
DB_HOST=your-host
DB_PORT=3306
DB_NAME=your-database
DB_USER=your-user
DB_PASSWORD=your-password
Node.js (mysql2 und dotenv)
Füge mysql2 und dotenv zur package.json hinzu, dann:
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)
Füge aiomysql und python-dotenv zur requirements.txt hinzu, dann:
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,
)
Gut zu wissen
- Nutz einen Connection-Pool, nicht für jeden Befehl eine neue Verbindung.
- Gib Nutzereingaben immer als Query-Parameter weiter, nie, indem du Text in das SQL einfügst.
- Nimm die Datenbank in deine Backups auf: So erstellst, lädst du herunter und stellst Backups wieder her.
- Kann sich der Bot nicht verbinden, prüf Host und Port anhand der Datenbankseite und ob das Passwort ein verirrtes Leerzeichen enthält.





