Every other week or so, we get a call from a (potential) client that goes like this:
Client: “I would like to make some edits to my database, and I want to know which Joomla file is the database.”
Us: “Well sir, the database is not stored in any Joomla file, the database is (usually) MySQL database – Joomla just connects to this database.”
The above conversation is typical, there is a misconception that there is a Joomla file where all the data is stored, which is not the case. In this post, we will explain where is the Joomla database, and what are the two main Joomla files used to connect and interact with the database.
Where is the Joomla database?
The Joomla database exists on usually a MySQL server, the name of the database is declared in your configuration.php file. In order to view your Joomla database, you will need to do the following:
- Login to your cPanel account.
- Go to your phpMyAdmin in cPanel (there should be a phpMyAdmin icon somewhere in the middle of your cPanel home screen).
- Locate the name of your database (which is declared in the $db variable in your configuration.php file) and click on it (in phpMyAdmin).
- Now you can view all the tables in your database (you can click on any table to view its contents). Your data is stored in these tables, for example, your articles are stored in jos_content, and your users are stored in jos_users.
What are the two main files that are used to connect to your Joomla database?
Joomla mainly uses 2 files (of course, there are many supporting files, but these two are the main ones) to connect to your database and to interact with your database:
- configuration.php: This file is located under the root directory of your Joomla website. It contains the connection parameters to your database, specifically:
- The type of the database: The type of the database is usually mysql, and it is stored in the $db_type variable.
- The name of the database: This is the name of the database storing the data for your Joomla website. The database name is stored in the $db variable.
- The table prefix: Also known as database/table alias, the table prefix defines what prefix should be appended to your Joomla tables in the database. The table prefix is defaulted to jos_, that’s why in the Joomla database, you have tables such as jos_categories instead of just categories. The table prefix is defined by the $table_prefix variable. The table prefix is useful in case you have multiple websites powered by the same database (and you don’t need to have conflicts between the tables). It is also very useful for security (it will be hard to guess your table name if you change the table prefix. (see 10 Security Tips for Your Joomla Website).
- The database user: The username that is used to connect to your Joomla database. It is stored in the $user variable.
- The user’s password: This is the password of the user above. It is stored in the $password variable.
Now, we have all the connection parameters to the database, but how do we connect to the database and get data? Well, that’s the job of database.php!
database.php: This file is located under this folder: /yourjoomlawebsite/libraries/joomla/database/, and it is responsible for connecting to the database (by using the connection parameters in configuration.php), getting data from your database, and inserting/modifying/deleting data in your database.
The database.php file contains a class called JDatabase that contains all the methods needed to interact with your database. Note that you should never change the database.php file. Doing so may leave your website non-operational.
If you have problems with your Joomla database and you need help, then that why we’re here for! Just contact us and we’ll do our best to help you! We’re also very fun to work with!