Fixed on image version 2026.916.1341 (published 2026-09-16)
First boot now authenticates its own `FLUSH PRIVILEGES` (it used to run unauthenticated and die with ERROR 1045), verifies `root` against the running server and only then writes /root/.mariadb-initial-password and the completion marker. The password survives reboots.
If you deployed this VM before 2026-09-16, it came from the older image and is not changed by the new publication — redeploy from the current Marketplace version, or apply the one-time repair below:
- On that image the root password in /root/.mariadb-initial-password applies on the FIRST boot only. If this VM has never been rebooted the file still holds the live password: sign in now with `mariadb -u root -p` and store it safely.
- Stop the old first-boot script from regenerating a password it can no longer apply, by writing the completion marker it failed to write (taken from the fixed script, not sweep-run).
- Already rebooted and the password was never stored? Reset root with MariaDB's documented `--init-file` procedure, or email support and we will walk you through it. MariaDB itself is running normally throughout.
sudo mkdir -p /etc/app && sudo touch /etc/app/.firstboot-complete
Image change: see the pull request.
Source: the Marketplace live version set for this offer, read from Partner Center on 2026-09-16. New deployments take the newest version by default.
At a glance
| Application ports | 3306 (MariaDB) — listens on localhost (127.0.0.1) only until you open it (three steps in Quick start); ufw already allows 3306, the NSG keeps it closed |
|---|
| Admin credential file | sudo cat /root/.mariadb-initial-password |
|---|
| Sign in as | root (root@localhost only, password auth) |
|---|
| Service(s) | mariadb |
|---|
| Configuration | /etc/mysql/mariadb.conf.d/50-server.cnf (bind-address; ssl_cert / ssl_key for a CA-signed certificate) |
|---|
| Logs | journalctl -u mariadb -f; /var/log/mysql/error.log |
|---|
| Version | MariaDB 11.4 LTS (MariaDB repository) |
|---|
| Platform | Ubuntu 24.04 LTS |
|---|
Quick start
- SSH into the VM with the username and key you chose at deploy.
- MariaDB runs as the `mariadb` systemd service on port 3306, listening on localhost (127.0.0.1) only: nothing outside the VM can connect until you complete the three steps below. Connect locally with `mariadb -u root -p` using the generated password (see First login below).
- To accept clients from another host — three deliberate steps, in this order (images from 2026.1004.2112 print them in the login message): (1) listen on the network: `sudo sed -i 's/^bind-address.*/bind-address = 0.0.0.0/' /etc/mysql/mariadb.conf.d/50-server.cnf && sudo systemctl restart mariadb`; (2) create an account for your client's address — root stays local-only: `CREATE DATABASE appdb; CREATE USER 'app'@'10.0.0.%' IDENTIFIED BY '<strong-password>'; GRANT ALL PRIVILEGES ON appdb.* TO 'app'@'10.0.0.%';`; (3) allow 3306 in the Azure NSG from that address only — never 0.0.0.0/0 (ufw on the VM already allows 3306/tcp).
- TLS is on by default: MariaDB 11.4 generates its own certificate at startup. For a CA-signed certificate set ssl_cert / ssl_key in /etc/mysql/mariadb.conf.d/50-server.cnf and restart MariaDB.
First login / credentials
This image generates its admin credential on the VM at first boot — nothing is pre-set. SSH into the VM with the username + key you chose at deploy, then print the generated credential:
ssh <your-username>@<VM-IP>
sudo cat /root/.mariadb-initial-password
Sign in as root (root@localhost only, password auth).
- Print the generated root password from the file.
- Connect locally: mariadb -u root -p (plain `sudo mariadb` is refused — root is switched to password auth at first boot, and root@localhost cannot sign in from another host).
- Create your application user and schema, change the root password (ALTER USER), and delete the file.
This is the MariaDB root password set at first boot (root@localhost is switched to password auth, so plain `sudo mariadb` is refused). Connect with `mariadb -u root -p`, change it with ALTER USER, and delete the file once stored securely.
Still stuck?
Email support@dcassociatesgroup.com (response within 1 business day) or send a
message via the contact form. Include the offer name, VM size, region, and any log output — sudo journalctl -u <service> -n 100 usually tells the story.