MySQL 8.4
MySQL is one of the most widely deployed open-source relational databases in the world. This image ships MySQL 8.4 LTS, a long-term support release intended for production workloads.
Software included
Section titled “Software included”| Component | Version |
|---|---|
| MySQL Server | 8.4.x (LTS) |
| Ubuntu | 24.04 LTS |
Getting started
Section titled “Getting started”1. Connect to your VM
Section titled “1. Connect to your VM”ssh ubuntu@<your-vm-ip>2. Wait for first-boot configuration
Section titled “2. Wait for first-boot configuration”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 -f3. Retrieve credentials
Section titled “3. Retrieve credentials”sudo cat /etc/mysql/mysql-root-password.txtThis file contains the root password. It is only readable by root.
4. Connect to MySQL
Section titled “4. Connect to MySQL”ROOT_PASS=$(sudo cat /etc/mysql/mysql-root-password.txt)mysql -u root -p"$ROOT_PASS"Managing MySQL
Section titled “Managing MySQL”# Check service statussystemctl status mysql
# Restartsudo systemctl restart mysql
# View logssudo journalctl -u mysql -fConfiguration 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).
Security
Section titled “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 3306To connect without opening the firewall (recommended), use an SSH tunnel:
# Run this on your local machinessh -L 3306:localhost:3306 ubuntu@<your-vm-ip>
# Then connect locallymysql -u root -p"<root-password>"