Back to Blog
Migration 2026-04-11 11 min read

TL;DR

  • Shared hosting providers (GoDaddy, Hostinger, Bluehost, SiteGround) bundle phpMyAdmin for free. When you move to a VPS, that tool disappears.
  • Over 60% of websites start on shared hosting, and the migration to a VPS is one of the most common infrastructure transitions developers make.
  • You have four practical options to fill the database gap: install phpMyAdmin yourself, use a desktop client with SSH tunnels, add a lightweight tool like Adminer, or use a hosted browser-based gateway.
  • DBEverywhere gives you phpMyAdmin and Adminer in the browser without installing anything on your VPS. Whitelist one static IP, enter your credentials, and you are connected.
  • Free tier: 5 sessions/month. Paid: $5/mo for unlimited sessions, saved connections, and SSH tunnel support.

Table of Contents


Moved Off Shared Hosting? Here's How to Keep Your phpMyAdmin Workflow

The migration everyone makes (and the gap nobody mentions)

Moving from shared hosting to a VPS database setup is arguably the most common infrastructure transition in web development. You started on GoDaddy, Hostinger, Bluehost, or SiteGround because it was cheap and easy. Then your project grew. The site got slower under shared resource limits. You needed root access for custom configurations. A background worker or a non-PHP stack was no longer optional.

So you spun up a VPS on DigitalOcean ($6/mo), Hetzner ($4.50/mo), Vultr ($6/mo), or Linode ($5/mo). You followed a migration tutorial. You moved your files, exported your database, imported it on the new server, pointed DNS, and verified everything was running.

Then you needed to check an order in the database. Or update a row. Or export a table for a report. You opened your browser, typed the familiar phpMyAdmin URL, and got a connection refused error.

According to W3Techs, over 60% of websites run on some form of shared hosting. When developers outgrow those plans, the VPS providers are ready with affordable options — but they do not replicate the tooling. Every migration guide covers how to install Nginx, configure MySQL, and deploy your code. Almost none of them address the tools you silently relied on every day. phpMyAdmin is the biggest one.


What shared hosting gave you for free

Shared hosting providers compete on convenience. The control panel — cPanel, hPanel (Hostinger), or a custom dashboard — is the product surface that users interact with daily. Here is what you had before the move:

Tool What Shared Hosting Provided What Your VPS Provides
Database GUI phpMyAdmin, pre-configured, one-click Nothing
Database backups Automated daily, one-click restore Manual (mysqldump + cron)
SSL certificates Auto-provisioned (Let's Encrypt or AutoSSL) Install Certbot, configure renewal
File manager Browser-based, drag-and-drop uploads SFTP or terminal only
Email Webmail, account creation, forwarding Self-hosted Postfix or third-party (Mailgun, etc.)
DNS management Visual zone editor Edit records at registrar or Cloudflare
Cron jobs GUI scheduler Edit crontab via SSH

The database GUI stands out because the others have well-known CLI or third-party replacements that most developers learn quickly. DNS moves to Cloudflare in five minutes. SSL gets handled by Certbot. Email shifts to a transactional provider.

But phpMyAdmin? It was the tool you opened multiple times a day without thinking about it — to check data, run queries, export tables, debug issues. Losing it changes your daily workflow in a way that losing the file manager does not.


Why the database gap hits hardest

There is a practical reason the database tool stings more than the others. Consider what a typical developer does with their database on any given day:

  • Verify data after a deploy. You pushed a migration. Did the new column appear? Are the defaults correct?
  • Debug a user issue. "My account shows the wrong plan." Fastest path: open phpMyAdmin, search the users table, check the row.
  • Export data for reporting. Finance needs this month's orders as a CSV. phpMyAdmin does that in two clicks.
  • Run a quick UPDATE or DELETE. A test record slipped into production. A customer's email needs correcting.
  • Inspect schema. Which indexes exist on the orders table? Is that foreign key constraint correct?

On shared hosting, every one of these tasks was a browser tab away. On a bare VPS, you are looking at mysql -u root -p in a terminal, writing raw SQL for tasks that used to take a click.

The MySQL command-line client is powerful. It is also unforgiving. No table browsing, no visual schema viewer, no point-and-click export, no syntax highlighting, no query history you can scroll through. For developers who built their entire database workflow around phpMyAdmin — which, according to BuiltWith, is used on over 1.4 million active websites — the terminal is a productivity regression.


Four ways to get your database GUI back

1. Install phpMyAdmin on the VPS

The most direct replacement: install the exact tool you had before. On Ubuntu:

sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

Then configure your web server, set up HTTPS, and restrict access.

Pros: Identical interface. Full feature set. Free.

Cons: You now own the security surface. phpMyAdmin has had over 40 CVEs since 2010, and automated scanners actively probe for exposed instances. You need to keep PHP, the web server, and phpMyAdmin itself patched. Setup takes 30-60 minutes for someone experienced. On a VPS with a fixed IP, bots will catalog your phpMyAdmin URL quickly — Wordfence data shows common admin URLs receive thousands of brute-force attempts per month.

See: Self-hosted phpMyAdmin security risks for the full breakdown.

2. Use a desktop client with SSH tunnels

SSH into your VPS and forward the MySQL port to your local machine:

ssh -L 3306:127.0.0.1:3306 user@your-vps-ip

Then connect with MySQL Workbench (free), DBeaver (free/paid), TablePlus ($99), or HeidiSQL (free, Windows).

Pros: Zero attack surface on the server. Encrypted connection. Desktop clients often have richer SQL editors and visual schema tools.

Cons: Requires a client installed on every machine you use. Does not work from tablets, phones, borrowed computers, or machines where you cannot install software. Setup is per-device. If you manage databases across multiple servers, you need tunnel configurations for each one. If you were used to "open browser, click phpMyAdmin" on shared hosting, this workflow is significantly heavier.

3. Drop in Adminer

Adminer is a single PHP file (under 500 KB) that provides a database GUI for MySQL, MariaDB, PostgreSQL, SQLite, and more:

wget https://www.adminer.org/latest.php -O /var/www/html/adminer.php

Pros: Minimal footprint. Supports multiple database engines. Fast to deploy — under 10 minutes.

Cons: Still a PHP file on your web server. Still needs HTTPS and access restrictions. Fewer features than phpMyAdmin (no trigger editor, no detailed server status). Best used as a temporary tool — drop it in, use it, delete it. The risk is that "temporary" becomes permanent, and an unpatched file sits on your server for months.

4. Use a hosted browser-based gateway

Connect to your VPS database through a managed service that runs phpMyAdmin and Adminer on its own infrastructure. Nothing is installed on your VPS.

DBEverywhere is built for this exact use case. You enter your database host, port, and credentials, and you get a full phpMyAdmin or Adminer session in the browser. A published static IP address lets you add one firewall rule to your VPS, and you are connected from anywhere.

Pros: Under 2 minutes to set up. Nothing to install, patch, or maintain on your server. Works from any device with a browser. Static IP for firewall whitelisting. Supports SSH tunnels for databases behind private networks (paid tier).

Cons: Your connection routes through third-party infrastructure. Credentials are used to establish the session only and are not stored unless you explicitly opt in to saved connections (paid tier). Free tier is limited to 5 sessions per month with 20-minute timeouts.


Side-by-side comparison

Factor Install phpMyAdmin SSH + Desktop Client Adminer Hosted Gateway (DBEverywhere)
Setup time 30-60 min 10-20 min per device 5-10 min Under 2 min
Monthly cost Free Free-$99 (client license) Free Free or $5/mo
Install on VPS Yes (~30 MB + PHP + web server) No Yes (< 500 KB) No
Web attack surface on VPS Medium-high None Low-medium None
Works from any browser Yes No Yes Yes
Works from any device Yes No (needs client) Yes Yes
Familiar to shared hosting users Yes (same interface) No (different UI) Partially Yes (phpMyAdmin interface)
Ongoing maintenance PHP + web server + phpMyAdmin patches Client updates Minimal (but easy to forget) None
SSH tunnel to private DB No Yes (manual) No Yes (built-in, paid tier)
Multi-database support MySQL/MariaDB only Depends on client MySQL, PostgreSQL, SQLite, MSSQL, more MySQL + PostgreSQL + more via Adminer

How to connect your VPS database to a browser GUI in 2 minutes

This walkthrough uses DBEverywhere as the vps phpmyadmin alternative, but the MySQL configuration steps apply regardless of which approach you choose.

Step 1: Create a dedicated MySQL user on your VPS.

SSH into your server and log into MySQL:

ssh root@your-vps-ip
mysql -u root -p

Create a user restricted to the DBEverywhere static IP:

CREATE USER 'dbegui'@'<DBEverywhere-IP>' IDENTIFIED BY 'a-strong-random-password';
GRANT ALL PRIVILEGES ON your_database.* TO 'dbegui'@'<DBEverywhere-IP>';
FLUSH PRIVILEGES;

Find the current static IP on the DBEverywhere dashboard. Restricting the MySQL user to a specific source IP is a second layer of security on top of the firewall rule.

Step 2: Allow remote connections in MySQL.

Edit the MySQL configuration:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Change the bind address:

# Before
bind-address = 127.0.0.1

# After
bind-address = 0.0.0.0

Restart MySQL:

sudo systemctl restart mysql

Step 3: Add a firewall rule for the static IP.

On Ubuntu/Debian with ufw:

# Allow MySQL ONLY from DBEverywhere's static IP
sudo ufw allow from <DBEverywhere-IP> to any port 3306

# Verify
sudo ufw status numbered

On CentOS/AlmaLinux with firewalld:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<DBEverywhere-IP>" port protocol="tcp" port="3306" accept'
sudo firewall-cmd --reload

Do not run sudo ufw allow 3306/tcp without a source IP. That opens your database port to the entire internet. For the full rationale, see our guide on database IP whitelisting.

Step 4: Connect through DBEverywhere.

  1. Go to dbeverywhere.com and sign up (free tier: 5 sessions/month).
  2. Click Connect.
  3. Enter your VPS public IP, port 3306, the MySQL user and password from Step 1, and your database name.
  4. You are in — full phpMyAdmin interface, the same one you had on shared hosting.

Credentials are used for the session only and are not stored unless you opt in (paid tier feature).


What to do if your database is on a managed service, not the VPS itself

Not every shared hosting to VPS database migration lands the database on the VPS itself. Many developers take the opportunity to move their database to a managed service:

  • DigitalOcean Managed Databases — starting at $15/mo for MySQL or PostgreSQL
  • AWS RDS — pay-as-you-go, free tier available for the first 12 months
  • PlanetScale — serverless MySQL with a free tier (though their free tier was removed in April 2024)
  • Railway — managed PostgreSQL starting at usage-based pricing
  • Neon — serverless PostgreSQL with a generous free tier

Each of these services has its own firewall or "trusted sources" configuration. The connection process is the same: add DBEverywhere's static IP to the allow list, and connect through the browser. Specific guides are available for DigitalOcean, AWS RDS, and Railway.

Managed databases are a strong complement to a VPS-based application layer. Your VPS runs your code; the managed service handles backups, replication, and failover for your data. The gap that remains is the same one: no phpMyAdmin, no visual way to browse and manage the data. A browser-based tool fills that gap regardless of where the database actually lives.


FAQ

I just need phpMyAdmin occasionally — is the free tier enough?

If you check your database a few times a month — maybe after a deploy, or when debugging a specific issue — the free tier's 5 sessions per month is likely sufficient. Each session gives you 20 minutes in phpMyAdmin or Adminer. If you find yourself hitting the limit regularly, the paid tier at $5/mo removes the cap entirely and extends sessions to 8 hours.

Does this work with PostgreSQL, or only MySQL?

DBEverywhere supports both. MySQL and MariaDB connections use phpMyAdmin. PostgreSQL (and other engines like SQLite and MS SQL) use Adminer, which is also available in the browser. If your shared hosting VPS migration database involved switching from MySQL to PostgreSQL — a common move when adopting frameworks like Django or Rails — you are covered.

Is it safe to route my database connection through a third-party service?

The connection between your browser and DBEverywhere is encrypted with TLS. The connection between DBEverywhere and your database is also encrypted (SSL is supported and recommended). Your credentials are used to establish the phpMyAdmin session and are not stored on DBEverywhere's servers unless you explicitly enable saved connections on the paid tier. The static IP model means your database firewall allows traffic from one known source, not the open internet. For a full breakdown of the security model, see the security page.

What if I have multiple databases across different VPS providers?

This is one of the strongest use cases for a browser-based tool. If you have a DigitalOcean droplet for one project, a Hetzner VPS for another, and an AWS RDS instance for a third, you would need separate phpMyAdmin installations (or desktop client configurations) for each one. With DBEverywhere, you whitelist the same static IP on all three firewalls and connect to any of them from a single browser tab. Paid tier users can save connections for one-click access.

My old shared host used cPanel. Is this the same transition?

Yes. Whether your shared hosting used cPanel (GoDaddy, A2 Hosting, HostGator), hPanel (Hostinger), or a custom panel (Bluehost, SiteGround), the database tooling gap on a VPS is identical. cPanel's phpMyAdmin, hPanel's phpMyAdmin, and SiteGround's phpMyAdmin are all the same open-source tool, pre-configured and bundled with the hosting plan. When you move to a VPS, that bundled tool disappears regardless of which provider you came from. We have a dedicated guide for the cPanel-specific transition.


Conclusion

The shared hosting to VPS database migration is a net positive. You get root access, dedicated resources, custom stacks, and a server that grows with your project instead of hitting shared limits. The tooling gap — especially the loss of phpMyAdmin — is real, but it does not have to slow you down.

If you want the exact phpMyAdmin experience you had on GoDaddy, Hostinger, or Bluehost, without installing anything on your VPS and without maintaining another piece of software, DBEverywhere gets you there in under two minutes. One firewall rule, one MySQL user, one browser tab.

The free tier handles light usage at 5 sessions per month. The paid tier at $5/mo covers daily database work with unlimited sessions, saved connections, and SSH tunnel support. Either way, your VPS stays clean — just your application and your database, the way it should be.

Try DBEverywhere free -- connect to your VPS database in 60 seconds

Try DBEverywhere Free

Access your database from any browser. No installation, no Docker, no SSH tunnels.

Get Started