\ind{database}
%TODO: this whole section is not yet 100% optimized
-\ejabberd{} uses its internal Mnesia database by default. However, it is
+\ejabberd{} uses the Erlang/OTP internal
+\footahref{http://www.erlang.org/doc/apps/mnesia/index.html}{Mnesia}
+database by default. However, it is
possible to use a relational database or an LDAP server to store persistent,
long-living data. \ejabberd{} is very flexible: you can configure different
authentication methods for different virtual hosts, you can configure different
The following databases are supported by \ejabberd{}:
\begin{itemize}
-\item \footahref{http://www.microsoft.com/sql/}{Microsoft SQL Server}
-\item \footahref{http://www.erlang.org/doc/apps/mnesia/index.html}{Mnesia}
-\item \footahref{http://www.mysql.com/}{MySQL}
-\item \footahref{http://en.wikipedia.org/wiki/Open\_Database\_Connectivity}{Any ODBC compatible database}
-\item \footahref{http://www.postgresql.org/}{PostgreSQL}
+\item \footahref{http://www.mysql.com/}{MySQL}, see section~\ref{mysql}
+\item \footahref{http://www.postgresql.org/}{PostgreSQL}, see section~\ref{pgsql}
+\item \footahref{http://www.microsoft.com/sql/}{Microsoft SQL Server}, see section~\ref{mssql}
+\item \footahref{http://en.wikipedia.org/wiki/Open\_Database\_Connectivity}{Any ODBC compatible database}, see section~\ref{odbc}
\end{itemize}
+For LDAP configuration details, see section~\ref{ldap}.
The following LDAP servers are tested with \ejabberd{}:
\begin{itemize}
\item \footahref{http://www.microsoft.com/activedirectory/}{Active Directory}
Note that the tutorial contains information about \ejabberd{}'s configuration
which is duplicate to this section.
-Moreover, the file mysql.sql in the directory src/odbc might be interesting for
-you. This file contains the \ejabberd{} schema for MySQL. At the end of the file
-you can find information to update your database schema.
+ejabberd automatically creates the tables and updates their schema if needed.
+The file mysql.sql in the directory src/odbc is provided only as reference.
\makesubsubsection{compilemysql}{Driver Compilation}
Note that the tutorial contains information about \ejabberd{}'s configuration
which is duplicate to this section.
-Moreover, the file mssql.sql in the directory src/odbc might be interesting for
-you. This file contains the \ejabberd{} schema for Microsoft SQL Server. At the end
-of the file you can find information to update your database schema.
+ejabberd automatically creates the tables and updates their schema if needed.
+The file mssql.sql in the directory src/odbc is provided only as reference.
\makesubsubsection{compilemssql}{Driver Compilation}
Note that the tutorial contains information about \ejabberd{}'s configuration
which is duplicate to this section.
-Also the file pg.sql in the directory src/odbc might be interesting for you.
-This file contains the \ejabberd{} schema for PostgreSQL. At the end of the file
-you can find information to update your database schema.
+ejabberd automatically creates the tables and updates their schema if needed.
+The file pg.sql in the directory src/odbc is provided only as reference.
\makesubsubsection{compilepgsql}{Driver Compilation}
contains information about \ejabberd{}'s configuration which is duplicate to
this section.
+ejabberd automatically creates the tables and updates their schema if needed.
\makesubsubsection{compileodbc}{Driver Compilation}
* gen_storage (abbreviated GS) provides a database abstraction layer,
which supports storage in Mnesia and in ODBC databases.
Several ejabberd modules use GS, like mod_roster and ejabberd_auth_storage.
- The schema of the tables stored by those modules have changed,
- and ejabberd migrates automatically your mnesia and ODBC
- tables from previous ejabberd releases.
+ The schema of the tables stored by those modules have changed.
+ ejabberd automatically creates mnesia and ODBC tables,
+ and migrates them from a previous ejabberd version.
* Massive Hosting (abbreviated MH) is preliminary implemented in ejabberd,
but it is still incomplete, untested and undocumented.