Skip to content
Live $100 credit at signup, up to $300 total Offer ends December 31, 2026 Get started →

MySQL

MySQL is one of the most widely deployed open-source relational databases in the world. This image ships a long-term support release intended for production workloads.

MySQL is published as one image per maintained LTS line. Pick the version you need when you deploy. Both 8.4 and 9.7 are current LTS lines, and 9.7 is the forward path off 8.4.

ComponentVersion
MySQL Server8.4.x or 9.7.x (LTS, per template)
Ubuntu24.04 LTS

You can optionally set these when deploying MySQL from the marketplace. Leave any field blank to have a secure random value generated automatically.

VariableDescription
MYSQL_ROOT_PASSWORDDatabase root password
MYSQL_DATABASEName of the application database to create
MYSQL_USERApplication database username
MYSQL_PASSWORDApplication database user password
ssh ubuntu@<your-vm-ip>

On the first boot, a setup script runs automatically. It generates a random root password and saves it to /etc/mysql/mysql-root-password.txt. This takes under 30 seconds.

Track progress:

journalctl -u mysql-first-boot.service -f
sudo cat /etc/mysql/mysql-root-password.txt

This file contains the root password. It is only readable by root.

ROOT_PASS=$(sudo cat /etc/mysql/mysql-root-password.txt)
mysql -u root -p"$ROOT_PASS"
# Check service status
systemctl status mysql
# Restart
sudo systemctl restart mysql
# View logs
sudo journalctl -u mysql -f

Configuration directory: /etc/mysql/mysql.conf.d/

To allow remote connections, edit /etc/mysql/mysql.conf.d/mysqld.cnf and change bind-address from 127.0.0.1 to 0.0.0.0, then restart MySQL. Open the firewall for specific IPs only (see Security).

Port 3306 is not open externally by default. UFW is enabled and allows SSH (port 22) only.

To allow access from a specific IP:

sudo ufw allow from <trusted-ip> to any port 3306

To connect without opening the firewall (recommended), use an SSH tunnel:

# Run this on your local machine
ssh -L 3306:localhost:3306 ubuntu@<your-vm-ip>
# Then connect locally
mysql -u root -p"<root-password>"