
How to Install MySQL and phpMyAdmin on Ubuntu (with Monitoring)
MySQL and phpMyAdmin are the go-to combo for managing databases in web projects.
Whether you're building something serious or just tinkering, self-hosting your own stack gives you full control — and it’s easier than you think.
In this guide, I’ll show you how to:
Install MySQL on Ubuntu
Secure your database
Set up phpMyAdmin
Add real uptime monitoring — so you know when something breaks
🧰 What You’ll Need
A fresh Ubuntu 22.04 server
sudo/root access
A domain name (optional, but recommended for phpMyAdmin)
10–15 minutes
⚡ Step 1: Install MySQL Server
Update your server:
sudo apt update && sudo apt upgrade -y
Install MySQL:
sudo apt install mysql-server -y
Secure your installation:
sudo mysql_secure_installation
Answer the prompts to remove anonymous users, disallow remote root login, etc.
🔐 Step 2: Create a MySQL User and Database
Log in to MySQL:
sudo mysql
Then run:
CREATE DATABASE myapp_db;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
🌐 Step 3: Install phpMyAdmin
Install required dependencies:
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl -y
During setup:
Choose Apache (if prompted)
Configure a MySQL application password
Enable extensions:
sudo phpenmod mbstring
sudo systemctl restart apache2
Now access it at:http://your-server-ip/phpmyadmin
🌍 Step 4: (Optional) Set Up a Domain for phpMyAdmin
Point a subdomain (like db.yourdomain.com
) to your server’s IP.
Then set up a reverse proxy (e.g. with NGINX) and secure it with HTTPS via Let’s Encrypt.
🛡️ Step 5: Secure phpMyAdmin Access
Protect access by:
Adding
.htpasswd
authenticationRestricting by IP
Moving it to a non-obvious path (
/mydbadmin
)
✅ Step 6: Monitor Your MySQL Stack with Garmingo Status
Congrats — your DB stack is running.
But what happens if it goes down?
💡 Don’t wait to find out the hard way. Add uptime monitoring now:
Create a free Garmingo Status account
Add a monitor for:
http(s)://yourdomain.com/phpmyadmin
Port 3306 (MySQL)
Your public IP (Ping monitor)
You’ll get:
Real-time alerts (Slack, Email, Telegram, etc.)
Public or private status pages
Downtime logs & SLA tracking
PDF uptime reports
🆓 100% free plan. No credit card. Instant peace of mind.
🧘 TL;DR
✅ Install MySQL
✅ Set up phpMyAdmin
🔒 Secure everything
📈 Monitor it with Garmingo Status
If your database goes down and no one's watching… is it really running?
Got an idea? Let us know