Skip to main content

MySQL

Open-source relational database for applications requiring MySQL compatibility.

CategoryDatabases
Deploy./uis deploy mysql
Undeploy./uis undeploy mysql
Depends onNone
Required byNone
Helm chartbitnami/mysql (unpinned)
Default namespacedefault

What It Does

MySQL provides an alternative relational database option alongside PostgreSQL. It is available for applications that specifically require MySQL compatibility. No other UIS services depend on MySQL — it is purely for user workloads.

Deploy

./uis deploy mysql

No dependencies.

Verify

# Quick check
./uis verify mysql

# Manual check
kubectl get pods -n default -l app.kubernetes.io/name=mysql

# Test connection
kubectl exec -it mysql-0 -- mysqladmin ping -uroot -p

Configuration

MySQL configuration is in manifests/043-database-mysql-config.yaml.

SettingValueNotes
Port3306Standard MySQL port
AuthEnabledPassword from secrets

Secrets

VariableFilePurpose
DEFAULT_MYSQL_ROOT_PASSWORD.uis.secrets/secrets-config/default-secrets.envRoot user password

Key Files

FilePurpose
manifests/043-database-mysql-config.yamlHelm values and service config
ansible/playbooks/040-database-mysql.ymlDeployment playbook
ansible/playbooks/040-remove-database-mysql.ymlRemoval playbook
ansible/playbooks/utility/u08-verify-mysql.ymlCRUD verification

Undeploy

./uis undeploy mysql

Troubleshooting

Pod won't start:

kubectl describe pod -l app.kubernetes.io/name=mysql
kubectl logs -l app.kubernetes.io/name=mysql

Authentication failed: Check the secret value:

kubectl get secret urbalurba-secrets -o jsonpath="{.data.MYSQL_ROOT_PASSWORD}" | base64 -d

Connection refused:

kubectl get svc mysql
kubectl get endpoints mysql

Learn More