Skip to content
Open console

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>"

Ask the ZCP docs

Type a question and pick an assistant. The assistant opens in a new tab and reads this page and the full ZCP documentation, so its answer comes from our docs.

Example questions

Ask with

Your question goes to the assistant you pick, under its own terms.