1.5 KiB
1.5 KiB
Database
Overview
The game bootstrap in game.py loads card data from a MariaDB database named vckonline using stored procedures to select card sets and randomize stacks.
The code assumes it can connect to:
- host:
127.0.0.1 - port:
3306 - user:
vckonline - password:
vckonline - database:
vckonline
This is designed to work with an SSH tunnel that forwards the remote DB to local port 3306.
SSH tunnel
Keep an SSH port forward running while using the DB locally:
ssh -L 3306:localhost:3306 lukesau.com
Stored procedures
The server/game code expects these procedures to exist:
select_base1_monsters()select_base1_citizens()select_base2_monsters()select_base2_citizens()select_random_domains()select_random_dukes()
To install all procedures:
./sql/run_sql.sh sql/create_all_stored_procedures.sql
See sql/INSTALL_PROCEDURES.md for additional options (mysql client, interactive MariaDB session, installing individually).
User / grants setup
If you have authentication or permissions problems, use:
sql/USER_SETUP_GUIDE.md: investigation and fix commands (create users forlocalhost,127.0.0.1,%, and grant privileges)sql/fix_user_setup.sql: a convenience SQL script in this repo (if you prefer to run a script vs copy/paste commands)
Verifying the DB
Quick port-level check (no Python deps):
python3 check_db_server.py
Full end-to-end check (Python + DB + tables + stored procs):
python3 test_database.py