NOUVEAU 📢 Offre de lancement limitée : jusqu'à 70 % de remise sur votre premier mois, pour tous les jeux !Voir les offres

Comment utiliser une base de données avec votre bot Discord

Hébergement de bots DiscordUpdated Oct 23, 20263 min read

Un bot qui se souvient de choses, comme des niveaux, des avertissements ou des paramètres par serveur, a besoin d’un endroit où les garder. Votre offre bot inclut une base de données. Vous pouvez aussi utiliser un fichier comme SQLite, qui ne demande aucune configuration mais se partage plus difficilement entre deux bots.

Créer la base de données

  1. Ouvrez votre serveur dans le panel et cliquez sur Bases de données dans le menu de gauche.
  2. Cliquez sur Nouvelle base de données, choisissez le type, ajoutez un libellé comme bot-data et cliquez sur Créer la base de données.
  3. Cliquez sur la base de données pour voir l’hôte, le port, le nom de la base, l’utilisateur et le mot de passe. Voir Comment utiliser des bases de données avec votre serveur pour la page complète.

Gardez les informations hors de votre code

Mettez les informations de connexion dans un fichier que votre code lit, comme .env, et ne committez pas ce fichier dans git. Dans Files, créez .env :

DB_HOST=your-host
DB_PORT=3306
DB_NAME=your-database
DB_USER=your-user
DB_PASSWORD=your-password

Node.js (mysql2 et dotenv)

Ajoutez mysql2 et dotenv à package.json, puis :

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)

Ajoutez aiomysql et python-dotenv à requirements.txt, puis :

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,
    )

Bon à savoir

  • Utilisez un pool de connexions, pas une nouvelle connexion à chaque commande.
  • Passez toujours les saisies des utilisateurs comme paramètres de requête, jamais en collant du texte dans le SQL.
  • Incluez la base de données dans vos backups : Comment créer, télécharger et restaurer des backups.
  • Si le bot ne peut pas se connecter, comparez l’hôte et le port avec la page de la base de données et vérifiez que le mot de passe ne contient aucun espace parasite.

Votre serveur est hébergé ailleurs ? Transférez-le chez nous

CRÉEZ VOTRE SERVEUR DE JEU
PRÊT À COMMENCER ?

Économisez jusqu’à 30% sur votre nouveau serveur de jeu.
Des performances premium, une activation instantanée et une fiabilité inégalée à un meilleur prix.

NOS DERNIERS ARTICLES