Bot, który coś zapamiętuje, na przykład poziomy, ostrzeżenia albo ustawienia na serwer, potrzebuje miejsca na te dane. Twój plan dla botów zawiera jedną bazę danych. Możesz też użyć pliku, takiego jak SQLite, który nie wymaga konfiguracji, ale trudniej go współdzielić między dwoma botami.
Utwórz bazę danych
- Otwórz serwer w panelu i kliknij Bazy danych w lewym menu.
- Kliknij Nowa baza danych, wybierz typ, dodaj etykietę, na przykład
bot-data, i kliknij Utwórz bazę danych. - Kliknij bazę danych, żeby zobaczyć host, port, nazwę bazy, użytkownika i hasło. Pełną stronę opisuje Jak używać baz danych z serwerem.
Trzymaj dane poza kodem
Umieść dane połączenia w pliku, który czyta twój kod, takim jak .env, i nie commituj tego pliku do gita. W Files utwórz .env:
DB_HOST=your-host
DB_PORT=3306
DB_NAME=your-database
DB_USER=your-user
DB_PASSWORD=your-password
Node.js (mysql2 i dotenv)
Dodaj mysql2 i dotenv do package.json, a potem:
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)
Dodaj aiomysql i python-dotenv do requirements.txt, a potem:
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,
)
Warto wiedzieć
- Używaj puli połączeń, a nie nowego połączenia dla każdej komendy.
- Dane od użytkownika zawsze przekazuj jako parametry zapytania, nigdy łącząc tekst w SQL.
- Dodaj bazę danych do swoich backupów: Jak tworzyć, pobierać i przywracać backupy.
- Jeśli bot nie może się połączyć, sprawdź host i port ze stroną bazy danych oraz czy w haśle nie ma zbłąkanej spacji.





