Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Databases in the official order

The six databases Exponential 6.0.x supports, in the project's official order (SQLite 3, PostgreSQL, MongoDB, MariaDB, Oracle, MySQL), compared side by side for hosts, with how to choose which to offer and what each one…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/hosting/basics/databases-in-the-official-order.md

On this page

Databases in the official order

This page is for product managers who decide which databases a hosting offer includes, and for system administrators who will run them. It answers: which databases Exponential 6.0.x supports, in which order the project recommends them, how they compare from a host's point of view, and how to choose what to offer. The support statement and every detail are in Database support; the operator's chapter is chapter 9, Databases.

Contents

  1. The official order
  2. Side by side
  3. What each one means for a host
  4. Choosing what to offer
  5. Things every database has in common
  6. Checklist
  7. Related pages

The official order

Supported databases (Exponential 6.0.x), in order of preference: 1. SQLite 3 (the default) · 2. PostgreSQL · 3. MongoDB · 4. MariaDB · 5. Oracle · 6. MySQL. Microsoft SQL Server is known to be possible with additional work at this time.

All six have a driver in the kernel or in a shipped extension, an entry in the setup wizard and a path in the command-line installers (Database support). The order is the order of recommendation for new sites; it does not mean the later ones work less well. Microsoft SQL Server has no driver in 6.0.x (Microsoft SQL Server status).

Use this order wherever your own material lists databases: plan descriptions, order forms, support articles.

Side by side

1. SQLite 32. PostgreSQL3. MongoDB4. MariaDB5. Oracle6. MySQL
Database server to runnone (one file)yesyesyesyesyes
DatabaseImplementationsqlite3ezpostgresqlmongodbezmysqliezoracleezmysqli
PHP extensionsqlite3pgsqlmongodb + library mongodb/mongodbmysqlioci8mysqli
exp:install --db=sqlite (default)pgsqlmongodbmariadboraclemysql
Several web servers on one databasenoyesyesyesyesyes
Practical minimumlibrary 3.3313server 6.0, PHP 8.2a release the vendor supports19ca release the vendor supports
Character setUTF-8UTF8UTF-8 (BSON)utf8mb4AL32UTF8utf8mb4
Tested in the project's CIdriver unit testsyes (PostgreSQL 15)adapter unit testsno (covered by the MySQL job, same driver)noyes (MySQL 8.0)
Backup toolsqlite3 .backuppg_dumpmongodumpmariadb-dumpext:ezoracle:datapump, expdpmysqldump

Sources: At a glance, versions and test coverage.

What each one means for a host

DatabaseFor a hostPage
1. SQLite 3Nothing to run or account for: the database lives in the site's own var/storage/sqlite3/. Fits every plan where one machine serves the site, including shared hosting. Backups are a file operation, but never a plain copy of a file in use.SQLite for hosts
2. PostgreSQLThe recommended database server. One database per site, with the site's user as its owner; pgcrypto must be available.PostgreSQL for hosts
3. MongoDBFor customers standardized on MongoDB. Needs PHP 8.2, a Composer library, a user in the site's database and a set of indexes; has documented limits.MongoDB for hosts
4. MariaDBThe MySQL-compatible server the project prefers; the usual database of hosting panels.MariaDB for hosts
5. OracleFor customers who run Oracle. Needs oci8 built against an Oracle client; usually the customer's own database.Oracle for hosts
6. MySQLSupported and tested in CI on the same driver as MariaDB; last in the order because the project recommends the others first for new sites.MySQL for hosts

Choosing what to offer

The project does not prescribe a hosting offer. These questions, taken from the decision table of Choosing hosting, database and operating system, decide it:

QuestionIf yes
Does more than one machine have to write the site's database?A database server, PostgreSQL first; not SQLite
Is the plan a single machine, shared or not?SQLite 3 covers it with no database server to run
Do customers bring their own MongoDB or Oracle?Offer that database as an option, with its page's requirements
Does your panel only provision MariaDB or MySQL accounts?Offer MariaDB, and SQLite where the panel allows a writable directory
Do you run a database service already?Offer the engine it runs, if it is among the six

Typical offers a host can build from this:

  • Entry plans: SQLite 3 only. No database account to provision, nothing to tune, backups per site.
  • Business plans: SQLite 3 or PostgreSQL, with MariaDB where the panel provisions it.
  • Enterprise or dedicated plans: any of the six, including the customer's own MongoDB or Oracle.

Tip

Whatever you offer, write the engine of each customer site into your inventory. Backups, restores, upgrades and support all differ per engine, and the update files of an upgrade are chosen by the engine the site runs on now (moving a site).

Things every database has in common

  • The connection is configured in settings/site.ini, block [DatabaseSettings], overridden in settings/override/site.ini.append.php (written by the installers). Never put a real password into a file under version control.

  • The installers do not create a database server's database or user. Create them first; each page shows how.

  • exp:install reads the password from the environment variable EXP_INSTALL_DB_PASSWORD, so it stays out of the shell history and the process list.

  • After a settings change, clear the INI cache and restart Velocity's workers:

    php bin/php/ezcache.php --clear-tag=ini --allow-root-user
    php bin/php/console exp:velocity restart --allow-root-user
  • Which database is a site using?

    php bin/php/console exp:ini get site.ini/DatabaseSettings/DatabaseImplementation --allow-root-user

    or Setup > System information, the Database card.

  • A complete backup is the database and the files: var/storage, settings/override and settings/siteaccess (Backup and restore).

  • Moving between engines is possible; see Changing the database engine.

Checklist

  • To do: The plan's databases are listed in the official order.
  • To do: The PHP extension of each offered database is installed in the web and the command line PHP.
  • To do: A procedure exists to create a database and a user per site (servers only).
  • To do: Backups per engine are in place and tested (Database backups per engine).
  • To do: The engine of every customer site is recorded.

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x