Confluence 3.3 のサポートは終了しています。
ドキュメントの最新バージョンを確認してください。
This page contains instructions on how to set up a MySQL datasource connection for Confluence Standalone or EAR/WAR.
On this page:
1. Shut down Tomcat
- Run
bin/shutdown.sh
orbin/shutdown.bat
to bring Tomcat down while you are making these changes
Make a backup of your <CONFLUENCE_HOME>/confluence.cfg.xml
file and your <CONFLUENCE_INSTALL>/conf/server.xml
file so you can easily revert should their be a problem.
2. Install the Drivers
- Download the MySQL JDBC drivers from http://www.mysql.com/downloads/api-jdbc-stable.html.
- After unpacking the file you have downloaded, you'll find a file called something like
mysql-connector-java-3.0.10-stable-bin.jar
. - Copy this file into the
common/lib
directory of your Tomcat installation. Be aware that this directory may be justlib
for Tomcat version 6 and beyond (i.e.<tomcat-install>/lib
rather than<tomcat-install>/common/lib
).
3. Tomcat の構成
- If you are using the Standalone distribution. edit the
conf/server.xml
file in your Tomcat installation. Users running their own Tomcat instance must edit the xml file where they declared the Confluence Context descriptor. - If editing
conf/server.xml
, find the following lines:<Context path="" docBase="../confluence" debug="0" reloadable="true"> <!-- Logger is deprecated in Tomcat 5.5. Logging configuration for Confluence is specified in confluence/WEB-INF/classes/log4j.properties -->
- Within the
Context
tags, directly after the opening <Context.../> line, insert the DataSourceResource
tag:<Resource name="jdbc/confluence" auth="Container" type="javax.sql.DataSource" username="yourusername" password="yourpassword" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/confluence?autoReconnect=true&useUnicode=true&characterEncoding=utf8" maxActive="15" maxIdle="7" validationQuery="Select 1" />
- Replace the username and password parameters with the correct values for your database
- In the url parameter, replace the word 'confluence' with the name of the database your confluence data will be stored in.
- If you plan to use non-latin characters, you will also need to add "
&useUnicode=true&characterEncoding=utf8
" on the end of the above URL. These options are not required for any database other than MySQL.
autoReconnect=true is required
The Confluence database connection URL must have autoReconnect=true
added to the end to prevent disconnection issues.
Why is the validationQuery element needed?
When a database server reboots, or there is a network failure, all the connections in the connection pool are broken and this normally requires a Application Server reboot.
However, the Commons DBCP (Database Connection Pool) which is used by the Tomcat application server can validate connections before issuing them by running a simple SQL query, and if a broken connection is detected, a new one is created to replace it. To do this, you will need to set the "validationQuery" option on the database connection pool.
If switching from a direct JDBC connection to datasource, you can find the above details in your <CONFLUENCE_HOME>/confluence.cfg.xml
file.
The configuration properties for Tomcat's standard data source resource factory (org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory) are as follows:
- driverClassName — 使用される JDBC ドライバの完全修飾 Java クラス名。
- maxActive — The maximum number of active instances that can be allocated from this pool at the same time.
- maxIdle — このプールで同時にアイドル状態可能な接続最大数。
- maxWait — The maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception.
- password — JDBC ドライバに渡されるデータベースのパスワード。
- url — JDBC ドライバに渡される接続 URL。(後方互換性のために、プロパティの driverName も認識されます。)
- user — JDBC ドライバに渡されるデータベースユーザー名
- validationQuery — 接続がアプリケーションに戻される前に接続を検証するためにプールによって使用される SQL クエリ。指定する場合、クエリは少なくとも1つの行を返す SQL SELECT 文でなければなりません。
4.Confluence Web アプリケーションを設定する
- Edit
confluence/WEB-INF/web.xml
in your confluence installation - Go to the end of the file and just before
</web-app>
, insert the following:<resource-ref> <description>Connection Pool</description> <res-ref-name>jdbc/confluence</res-ref-name> <res-type>javax.sql.Datasource</res-type> <res-auth>Container</res-auth> </resource-ref>
5. Configure Confluence
- If you have not yet set up Confluence
- Follow the steps in the Confluence Setup Guide
- In the Database Setup section, choose the "Datasource Connection" option.
- Set the JNDI name to
java:comp/env/jdbc/confluence
- Set the Database dialect to MySQL.
- If you are changing an existing Confluence installation over to using a Tomcat datasource
- Find your ConfluenceHome directory (see: Confluence Home Directory if you don't know where it is).
- Edit the confluence.cfg.xml file
- Delete any line that contains a property that begins with
hibernate.
- Insert the following at the start of the
<properties>
section.<property name="hibernate.setup"><![CDATA[true]]></property> <property name="hibernate.dialect"><![CDATA[net.sf.hibernate.dialect.MySQLDialect]]></property> <property name="hibernate.connection.datasource"><![CDATA[java:comp/env/jdbc/confluence]]></property>
6. Confluence を再起動します。
Run bin/startup.sh
or bin/startup.bat
to start Tomcat with the new settings.
F.A.Q.
- I see "Can't call commit when autocommit=true" during an upgrade of Confluence or otherwise.
Please see http://jira.atlassian.com/browse/CONF-1710. This error can be fixed by adding:to the end of your JDBC URL.&relaxAutoCommit=true
Example:This JDBC URL can be found in your confluence.cfg.xml file located in your confluence home folder.jdbc:mysql://localhost/confdb?autoReconnect=true&relaxAutoCommit=true