NEU 📢 Begrenztes Startangebot: bis zu 70 % Rabatt auf deinen ersten Monat, für jedes Spiel!Tarife ansehen

So nutzt du eine Datenbank mit deinem Discord-Bot

Discord-Bot-HostingUpdated Oct 22, 20263 min read

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

  1. Öffne deinen Server im Panel und klick im Menü links auf Datenbanken.
  2. Klick auf Neue Datenbank, wähl den Typ, gib eine Bezeichnung wie bot-data ein und klick auf Datenbank erstellen.
  3. 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.

Läuft dein Server schon woanders? Zieh ihn zu uns um

ERSTELLE DEINEN GAMESERVER
BEREIT ZUM LOSLEGEN?

Spare bis zu 30% auf deinen neuen Gameserver.
Premium-Performance, sofortige Aktivierung und unschlagbare Zuverlässigkeit. Alles zum besseren Preis.

UNSERE NEUESTEN BLOGS