🎉Find Prospects and SendCold Emails All in One Place

How to Access Joomla Database

Table of Contents

ou built your Joomla site. Everything looks great on the surface. Then something breaks — a plugin conflict, a corrupt record, a user you can’t delete from the admin panel.

The fix almost always lives in one place: the database.

Joomla runs on MySQL (or MariaDB), and knowing how to get in there gives you complete control over your site. Whether you need to reset a password, fix a broken extension, or just pull a backup — this guide walks you through every method to access your Joomla database safely and confidently.

No technical background required. Just follow the steps.

 

What Is the Joomla Database?

Every Joomla website stores its content, users, settings, and extensions in a relational database — almost always MySQL or MariaDB. Joomla itself does not store your data in flat files like some older CMS platforms. Instead, it reads from and writes to this database on every page load.

Here is what that means in practice:

  • Your articles, categories, and menus live in database tables
  • Every user account is a row in #__users
  • Extension settings are stored in #__extensions and #__modules
  • Your site’s global configuration is partially stored in configuration.php (more on that below)

According to W3Techs, Joomla powers approximately 2.5% of all websites on the internet and holds about 6.6% of the CMS market share, making it the third most widely used CMS globally after WordPress and Shopify. That is over 2 million active Joomla installations worldwide as of recent counts.

With that scale of deployment, knowing how to access and manage the underlying database is not optional — it is a core skill.

Find Your Database Credentials First

Before you open any tool, you need four pieces of information:

  • Database host (usually localhost)
  • Database name
  • Database username
  • Database password

All four are stored in one file: configuration.php, located in your Joomla root directory.

Open it and look for these lines:

public $host = ‘localhost’;

public $db = ‘your_database_name’;

public $user = ‘your_database_user’;

public $password = ‘your_database_password’;

public $dbprefix = ‘jos_’;

 

The $dbprefix value is important too — it tells you the prefix on all your Joomla table names (commonly jos_ or a custom string). Keep this file open in a separate tab. You will need these credentials for every method below.

Method 1 — Access via phpMyAdmin (Most Common)

phpMyAdmin is a web-based graphical interface for MySQL. Almost every shared hosting provider includes it, and it is the easiest way to browse, query, and edit your Joomla database without touching the command line.

How to open phpMyAdmin:

Most hosts give you access through cPanel. Log into your cPanel account, scroll to the Databases section, and click phpMyAdmin. You will be logged in automatically.

If your host does not use cPanel, check your hosting dashboard for a “Database Manager” or “phpMyAdmin” link. Some hosts (like Kinsta or WP Engine-style managed hosts) offer phpMyAdmin under a dedicated database management tab.

Once inside phpMyAdmin:

  1. Look at the left sidebar — you will see a list of databases
  2. Click the database name matching your $db value from configuration.php
  3. All your Joomla tables appear, prefixed with your $dbprefix
  4. Click any table name to browse its rows
  5. Use the SQL tab at the top to run custom queries

Common tables to know:

Table

What it stores

#__users

User accounts and passwords

#__content

Articles

#__categories

Content categories

#__extensions

Installed components, modules, plugins

#__modules

Module settings

#__menu

Navigation menus

#__session

Active user sessions

Replace #__ with your actual prefix (e.g., jos_users, abc123_users).

Method 2 — Access via cPanel Database Manager

If phpMyAdmin is not available or you just want to check database details, cPanel’s own database manager gives you direct access.

  1. Log into cPanel
  2. Go to Databases → MySQL Databases
  3. You will see a list of all databases on your account
  4. Note which database matches your Joomla installation
  5. From here, click the database name to open it in phpMyAdmin (same as Method 1)

The MySQL Databases section also shows you which database user has access to which database — useful if you are troubleshooting permission errors.

According to Plesk’s 2023 hosting industry report, cPanel remains the most widely used web hosting control panel, running on approximately 70% of all shared hosting servers globally. If you are on shared hosting, there is a very high chance this method works for you.

Method 3 — Access via SSH and MySQL Command Line

If you have SSH access to your server, the command line gives you the fastest and most powerful way to interact with your Joomla database directly.

Step 1 — Connect via SSH:

ssh username@yourdomain.com

 

Or if your host uses a custom port:

ssh -p 2222 username@yourdomain.com

 

Step 2 — Navigate to your Joomla root and get credentials:

cat /path/to/joomla/configuration.php | grep -E ‘host|db|user|password’

 

Step 3 — Connect to MySQL:

mysql -u your_database_user -p your_database_name

 

You will be prompted for the password. Paste the $password value from configuration.php.

Step 4 — Run queries:

Once inside the MySQL shell, you can run any SQL command:

— List all tables

SHOW TABLES;

 

— View all users

SELECT id, name, username, email FROM jos_users;

 

— Reset a user password (MD5 hash example)

UPDATE jos_users SET password=MD5(‘newpassword’) WHERE username=’admin’;

 

Press CTRL+D or type exit to leave the MySQL shell.

A 2022 survey by JetBrains found that MySQL is the most used database engine overall, with 61% of professional developers working with it regularly. Joomla’s choice to use MySQL by default puts it squarely in the mainstream of web development.

Method 4 — Access via Joomla Administrator Panel

Joomla’s own admin panel does not give you raw database access, but it does let you view and manage data stored in the database through its built-in tools — without ever opening phpMyAdmin.

For user management:

  1. Log into yourdomain.com/administrator
  2. Go to Users → Manage
  3. Click any user to edit their details, groups, or reset their password

For extension data:

  1. Go to Extensions → Manage → Manage
  2. You can enable, disable, or uninstall extensions — which writes directly to the database

For global configuration:

  1. Go to System → Global Configuration
  2. Changes here update configuration.php and the database simultaneously

This method is best for non-technical users who need to manage content without direct database access.

Method 5 — Access via Adminer (Lightweight phpMyAdmin Alternative)

Adminer is a single PHP file that functions as a database manager — similar to phpMyAdmin but lighter and faster. Many developers prefer it for its simplicity.

How to use Adminer with Joomla:

  1. Download adminer.php from adminer.org
  2. Upload it to your Joomla root directory via FTP or your file manager
  3. Visit yourdomain.com/adminer.php in your browser
  4. Enter your database credentials from configuration.php
  5. Click Login

You now have full database access identical to phpMyAdmin.

Important: Delete adminer.php from your server after you are done. Leaving it accessible is a significant security risk.

Method 6 — Access via Remote MySQL Connection

Some hosting providers allow you to connect to your MySQL database from an external tool like MySQL Workbench, TablePlus, or DBeaver using a remote connection.

To enable remote MySQL access:

  1. In cPanel, go to Databases → Remote MySQL
  2. Add your IP address to the allowed list
  3. Use your credentials from configuration.php to connect

In MySQL Workbench:

  1. Open MySQL Workbench
  2. Click the + icon to create a new connection
  3. Enter:
    • Hostname: your domain or server IP
    • Port: 3306 (default)
    • Username: database user from configuration.php
    • Password: database password from configuration.php
  4. Click Test Connection
  5. If successful, click OK and double-click the connection to open it

Note: Many shared hosts block remote MySQL connections by default. Contact your host if the connection is refused even after whitelisting your IP.

Common Joomla Database Tasks (With SQL)

Now that you are inside the database, here are the most common things people actually need to do:

Reset the super admin password:

UPDATE jos_users

SET password = MD5(‘your_new_password’)

WHERE username = ‘admin’;

 

For Joomla 3.8+ (which uses bcrypt), use:

UPDATE jos_users

SET password = ‘$2y$10$…’

WHERE username = ‘admin’;

 

It is easier to use a bcrypt generator tool online and paste the hash in.

Find and delete spam users:

SELECT id, name, email, registerDate

FROM jos_users

WHERE block = 0

ORDER BY registerDate DESC;

 

Disable a broken extension:

UPDATE jos_extensions

SET enabled = 0

WHERE name = ‘com_brokenextension’;

 

Clear all sessions (force all users to log out):

TRUNCATE jos_session;

 

Check your Joomla version stored in the database:

SELECT version FROM jos_schemas

WHERE extension_id IN (

  SELECT extension_id FROM jos_extensions WHERE element = ‘com_admin’

);

 

Joomla Database Security: What You Must Know

Getting into your database is powerful. That power comes with responsibility.

Always take a backup before making changes. In phpMyAdmin, use the Export tab to download a full SQL dump of your database before running any UPDATE or DELETE query. A single bad WHERE clause can wipe rows you cannot recover without a backup.

Joomla’s database security posture matters at scale. A 2023 Sucuri report found that CMS vulnerabilities in the database layer — including SQL injection attacks — account for 22% of all website compromises. Most of these happen through poorly secured admin panels, not direct database access.

Keep these in mind:

  • Never expose phpMyAdmin or Adminer without password protection — add IP restriction or HTTP authentication
  • Use strong, unique database passwords — not the same as your Joomla admin password
  • Limit database user privileges — your Joomla database user only needs SELECT, INSERT, UPDATE, DELETE, and CREATE
  • Rename your table prefix from the default jos_ — automated SQL injection attacks often target this default
  • Enable SSL for remote connections if your host supports it

According to a 2022 report by Imperva, over 65% of web application breaches involve the database layer, making database access control one of the highest-value security investments for any website owner.

Troubleshooting Access Issues

“Access denied for user” — Your username or password in configuration.php is wrong, or the database user does not have permission. Check cPanel’s MySQL Databases section to verify user-database assignments.

“Can’t connect to MySQL server” — Your host is likely blocking remote connections. Use phpMyAdmin inside cPanel instead, or ask your host to whitelist your IP for remote MySQL.

“Database table not found” — Your table prefix in configuration.php does not match the actual table names in your database. Open phpMyAdmin and check what prefix your tables actually use.

“phpMyAdmin shows no databases” — Your database user may not have SELECT privilege on the target database. Reassign the user to the database via cPanel’s MySQL Databases section.

“Joomla shows a blank white screen after database change” — Check the error_log file in your Joomla root. Nine times out of ten, a syntax error in a SQL query corrupted a table. Restore your backup.

Conclusion

Accessing your Joomla database is simpler than most people think once you know where to look. Whether you prefer the visual interface of phpMyAdmin, the raw power of SSH and MySQL command line, or a lightweight tool like Adminer — all roads start with configuration.php and the credentials stored there.

The key habits that protect you:

  • Always back up before editing
  • Restrict access to phpMyAdmin and Adminer
  • Use strong, unique database credentials
  • Know your table prefix

With over 2 million Joomla sites running worldwide and MySQL powering more than 60% of all web applications, these database skills transfer far beyond Joomla alone. Master them here and you have a foundation that works across almost every CMS and web framework in existence.

📈 Struggling to Fill Your Pipeline? Turn Cold Outreach into Booked Meetings

At SalesSo, we handle your complete outbound strategy — targeting, campaign design, and scaling — so your team focuses on closing, not prospecting.

7-day Free Trial |No Credit Card Needed.

FAQs

How do I find my Joomla database name?

Your database name is stored in the configuration.php file in your Joomla root directory. Look for the line public $db = 'your_database_name';. If you are trying to find the right customers for your B2B product the same way — by digging through messy data manually — there is a faster path. SalesSo builds your complete outbound targeting system, campaign design, and scaling strategy so you reach decision-makers without the guesswork. Book a strategy meeting here.

Can I access the Joomla database without cPanel?

Yes. If your host does not use cPanel, you can access the database via SSH using the mysql command, through Adminer uploaded to your server, or via a remote MySQL client like MySQL Workbench if your host allows remote connections.

What database does Joomla use?

Joomla supports MySQL, MariaDB, and PostgreSQL. MySQL and MariaDB are by far the most common, with MariaDB being the default on many modern hosting stacks since it is a fully compatible fork of MySQL with performance improvements.

How do I back up my Joomla database?

In phpMyAdmin, click your database name in the left sidebar, then click the Export tab. Choose Quick export format and select SQL. Click Go and save the .sql file. For automated backups, Joomla extensions like Akeeba Backup handle scheduled database and file backups in one place.

We deliver 100–400+ qualified appointments in a year through tailored omnichannel strategies

What to Build a High-Converting B2B Sales Funnel from Scratch

Lead Generation Agency

Build a Full Lead Generation Engine in Just 30 Days Guaranteed