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

Database FAQ

Short answers to the questions database administrators ask most about Exponential - which engine, is SQLite really enough, which privileges, where the password is, how to back up and upgrade, replicas, clustering, SQL…

Download as PDF

Address: https://doc.exponential.earth/learninminutes/exphelp/viewer/help/database-administrators/database-faq.md

On this page

Database FAQ

This page is for database administrators who want a quick answer before they read a full page. Each answer links to the page with the details.

Contents

  1. Choosing and installing
  2. Accounts and security
  3. Running the database
  4. Upgrades and moves
  5. Scaling
  6. Engine-specific questions

Choosing and installing

Which databases are supported? Six, in this order of preference: SQLite 3 (the default), PostgreSQL, MongoDB, MariaDB, Oracle, MySQL. Microsoft SQL Server is known to be possible with additional work (Supported engines and versions).

Is SQLite really fit for production? For a site served from one machine, yes: the driver adds WAL, connection settings for a web server and a write queue, and caches answer most page views. Choose a server engine for several web servers, heavy concurrent publishing, replication or database grants (Choosing an engine).

Which minimum versions? SQLite library 3.33, PostgreSQL 13, MongoDB 6.0 with PHP 8.2, Oracle 19c; MySQL and MariaDB a release your vendor supports, with InnoDB and utf8mb4 (Versions).

Does the installer create the database and the user? No. Create them first; the installers create the tables (Setting up PostgreSQL, MySQL and MariaDB).

Accounts and security

Which privileges does the site need? Full rights on its own database and nothing else; on MySQL the list in Database accounts and privileges, on PostgreSQL ownership of the database.

Can the site run without DDL rights? The project does not document or test that split; the same account applies the update files. Test it on staging if your policy requires it.

Where is the database password? In settings/override/site.ini.append.php. Keep it out of version control, mode 640 (Securing the database).

Does the administration show the password? No. Secrets are masked everywhere, and the database user is always hidden in the System information report.

Running the database

How do I back it up? With the engine's tool: .backup for SQLite, pg_dump, mysqldump --single-transaction, mongodump, Data Pump. Plus var/storage and settings/override (Backups per engine).

Can I copy the SQLite file? Not while it is in use. Use .backup or VACUUM INTO.

May I change data with SQL by hand? Avoid it; use the administration or the scripts. If you must, clear the caches afterwards, the SQL query cache included (The SQL query cache).

Which cronjobs touch the database? The default part, frequent and infrequent; session_gc.php is not in any shipped part (Housekeeping).

Are sessions in the database? Only with [Session] Handler=ezpSessionHandlerDB (Sessions in the database).

Upgrades and moves

Which version is my database at? SELECT name, value FROM ezsite_data WHERE name LIKE 'ezpublish-%'; (Upgrades).

Which update files do I apply? Those of your engine and your path, in order, each once; never 6.12/, 7.2/, 7.3/ or unstable/ (Upgrades and the SQL update files).

How do I check the schema afterwards? Setup > Upgrade check, "Check database consistency", or ezsqldiff.php (Checking the schema).

Can I move from MySQL to PostgreSQL? Yes, through a .dba dump and insert in a maintenance window (Moving a site to another engine).

Scaling

Does Exponential support read replicas? On MySQL and MariaDB, with UseSlaveServer; on the other engines replication is the server's own (Read replicas).

Can several web servers share one database? Yes, on every engine except SQLite; files are then shared with the DFS cluster (Clustering).

How do I find slow queries? SQLOutput and SlowQueriesOutput in the debug output for your address, the SQL profiler, and your engine's slow query log (Finding slow queries).

Should I turn on the query cache? Try request, then shared, and measure; remember to clear it after writes outside Exponential (The SQL query cache).

Engine-specific questions

Why are emoji lost on MySQL? The connection uses utf8, which is three-byte utf8mb3 (utf8mb4).

Why does PostgreSQL need pgcrypto? The driver computes MD5 with digest() (Setting up PostgreSQL).

What does MongoDB not support? Some features, listed on MongoDB: limits and operations; untranslated SQL returns empty results and logs MONGO TODO.

Is Oracle supported out of the box? Through the ezoracle extension, present in every installation and activated for Oracle sites, from 6.0.15 on (Setting up Oracle).

Can I use Microsoft SQL Server? Not in 6.0.x (Microsoft SQL Server: status).

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