Openfire stores all data in a back-end database. If you choose to not use the embedded database, you must setup and manage an external database for the application. This document provides setup instructions for all of the currently supported databases.
JDBC 2.0 drivers are required for Openfire to communicate with your database. Suggested drivers for particular databases are noted below where applicable. Openfire bundles JDBC drivers for MySQL, Postgres, Microsoft SQL Server, and HSQLDB.
For a full list of available JDBC drivers, please see: http://industry.java.sun.com/products/jdbc/drivers.
All database schemas can be found in the resources/database directory of the Openfire installation.
Note that additional databases besides the ones in this list may be supported. Please check the distribution for a database schema for your database or consider creating a schema yourself if one isn't provided.
Choose your database from the list below for setup details:
The JDBC driver for MySQL is bundled with Openfire, so you do not need to download and install a separate driver.
In the Openfire setup tool, use the following values:
where [YOUR_HOST] and [DATABASE_NAME] are the actual values for you server. In many cases localhost is a suitable value for [YOUR_HOST] when your database is running on the same server as your webserver.
Setup Instructions
mysqladmin create [databaseName]
cat openfire_mysql.sql | mysql [databaseName];
type openfire_mysql.sql | mysql [databaseName];
¹ Character fields larger than 255 are not supported by versions prior to MySQL 4.1.18. If you cannot upgrade MySQL to the latest version, you will then need to change the database scripts. In particular, replace VARCHAR(1024) with VARCHAR(255) in the resources/database/openfire_mysql.sql script.
Character Encoding Issues
MySQL does not have proper Unicode support, which makes supporting data in non-Western languages difficult. However, the MySQL JDBC driver has a workaround which can be enabled by adding ?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8 to the URL of the JDBC driver. You can edit the conf/openfire.xml file to add this value.
Note: If the mechanism you use to configure a JDBC URL is XML-based, you will need to use the XML character literal & to separate configuration parameters, as the ampersand is a reserved character for XML.
Further Help
If you need help setting up MySQL, refer to the following sites:
The Oracle 9i or 10g "thin" drivers are recommended and can be downloaded from Oracle's website. Various versions of the thin drivers are avaialble, but the "ojdbc14.jar" driver is recommended for use with Openfire. Copy the JDBC driver to the lib/ directory of your Openfire installation.
In the Openfire web-based setup tool, use the following values:
where [YOUR_HOST] and [DATABASE_NAME] are the actual values for you server.
In many cases localhost
is a suitable value for [YOUR_HOST] when
your database is running on the same server as your webserver.
Setup Instructions
First, create a "Jive" user or some other user that will "own" the Jive tables. This isn't necessary, but doing so will allow your tables to exist in a seperate tablespace.
Next import the schema from the resources/database directory of the installation
using sqlplus (or your favorite Oracle tool such
as Toad). For sqlplus: copy the "openfire_oracle.sql" file to the same
directory where sqlplus is installed (should be something like
/Oracle/Ora81/bin/). Next, log into sqlplus and then execute the command:
@ openfire_oracle
That will import the schema file. Your database is now setup.
SQL Server
JDBC DriversOpenfire includes the Free TDS JDBC driver, which is the recommended way to connect to SQL Server databases. To connect to SQL Server, simply use the following values in the Openfire web-based setup tool:
where [host-name] is the host name or IP address of your database server, and [port-number] is the port that SQLServer is listening on (normally 1433) and [database-name] is the name of the database (this parameter is optional).
Setup Instructions
The JDBC driver for Postgres is bundled with Openfire, so you do not need to download and install a separate driver.
In the Openfire web-based setup tool, use the following values:
If left out, host defaults to localhost (not 127.0.0.1) and port to 5432.
Setup Instructions
"createdb"
utility:
createdb -E UNICODE openfire
psql -d openfire -f openfire_postgresql.sql
Use the JDBC 1.2 compliant driver, db2java.zip (1293KB),
located in the
Values for the config file are:
COM.ibm.db2.jdbc.app.DB2Driver
jdbc:db2:[DB NAME, e.g. JIVE]
COM.ibm.db2.jdbc.net.DB2Driver
jdbc:db2:[DB NAME, e.g. JIVE]
Setup Instructions
You have to create a new database (e.g. JIVE) or use an existing one. Connect to the database using any valid username allowed to create tables and indexes. Keep in mind that DB2 UDB applies the user name as the table schema. Use the same user when you configure Jive with the administration interface. Commands are as follows:
DB2 CREATE DB JIVE ALIAS JIVE
DB2 CONNECT TO JIVE USER [DBUSER] USING [DBPASSWORD]
(or you can use the Command Center GUI)
Start the DB2 command window (in Windows), or the user's shell in Unix and import the schema in the resources/database directory of the installation with:
db2 -tvf openfire_db2.sql
Or, use the DB2 Command Center and run the script through the "Replication Sources" folder in the Database tree.
The database is now setup.
Openfire bundles hsqldb as its embedded database. If you choose to use the embedded database, it can be configured via the Openfire installer. If you have a stand-alone installation of HSQLDB, follow the instructions below to connect to it.
JDBC DriversBecause hsqldb is embedded in Openfire, there is no need to download the JDBC driver separately. Values for the config file are:
org.hsqldb.jdbcDriver
jdbc:hsqldb:[PATH_TO_DB_FILES/DB_NAME]
For example, the server URL might be jdbc:hsqldb:../database/defaultdb
Setup Instructions
Create a database for the Openfire tables. This assumes you have HSQLDB installed in its own directory and working correctly.
java -cp hsqldb.jar org.hsqldb.util.DatabaseManager