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
authentication - Restricting 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.
๐ Get started here
๐ง 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?
Top comments (0)