Senate

MySQL / MariaDB

Deploy MySQL or MariaDB database with persistent storage

MySQL / MariaDB

Deploy a MySQL or MariaDB database with persistent storage.

Quick Deploy

Create service

Go to ServicesNew Service

Enter service name: mysql and click Create

Configure source

  1. Go to the Source tab
  2. Select Docker Image as source type
  3. Enter image: mysql:8 or mariadb:11
  4. Click Save

Add environment variables

MYSQL_ROOT_PASSWORD=your-secure-password
MYSQL_DATABASE=myapp
MYSQL_USER=appuser
MYSQL_PASSWORD=app-secure-password

Add storage

Mount PathVolume
/var/lib/mysqlmysql-data

Deploy

Click Create to deploy.

Configuration Options

MySQL 8

Image: mysql:8

Environment variables:

VariableDescriptionRequired
MYSQL_ROOT_PASSWORDRoot user passwordYes
MYSQL_DATABASEDatabase to createNo
MYSQL_USERAdditional userNo
MYSQL_PASSWORDUser passwordNo

MariaDB

Image: mariadb:11

Same environment variables as MySQL.

Connecting

From other services

Use Docker networking:

mysql://appuser:app-secure-password@mysql:3306/myapp

Or with the full container name:

mysql://appuser:password@senate-mysql-xxx:3306/myapp

External access

Exposing databases publicly is a security risk. Use SSH tunnels or VPN instead.

If you must expose externally:

  1. Add a port mapping: 3306:3306
  2. Configure firewall rules

Custom Configuration

Using a config file

  1. Create my.cnf:
[mysqld]
max_connections = 200
innodb_buffer_pool_size = 1G
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
  1. Mount as volume:
/path/to/my.cnf:/etc/mysql/conf.d/custom.cnf:ro

Backups

Manual backup

docker exec senate-mysql-xxx mysqldump -u root -p myapp > backup.sql

Restore

docker exec -i senate-mysql-xxx mysql -u root -p myapp < backup.sql

Automated backups

Use a cron job or backup service:

#!/bin/bash
DATE=$(date +%Y%m%d)
docker exec senate-mysql-xxx mysqldump -u root -p$MYSQL_ROOT_PASSWORD myapp | gzip > /backups/myapp-$DATE.sql.gz

Performance Tips

  1. Tune buffer pool: Set innodb_buffer_pool_size to 70-80% of available RAM
  2. Use SSDs: For database storage volumes
  3. Monitor slow queries: Enable slow query log
  4. Regular maintenance: Run OPTIMIZE TABLE periodically

On this page