Instructions on setting up a MySQL DataSource connection for Confluence Standalone or EAR/WAR.
|
The Confluence database connection URL must have |
bin/shutdown.sh or bin/shutdown.bat to bring Tomcat down while you are making these changesmysql-connector-java-3.0.10-stable-bin.jar.common/lib directory of your Tomcat installation.The configuration is different for Conflence 2.2 onwards due to an upgrade to Tomcat 5.5
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.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 -->
|
Context tags, directly after the opening <Context.../> line, insert the DataSource Resource 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"
validationQuery="Select 1" />
|
&useUnicode=true&characterEncoding=utf8" on the end of the above URL. These options are not required for any database other than MySQL.conf/server.xml file in your Tomcat installation
<Context path="" docBase="../confluence" debug="0" reloadable="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="atlassian-confluence."
suffix=".log" timestamp="true"/>
|
<Resource name="jdbc/confluence" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/confluence">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>yourusername</value>
</parameter>
<parameter>
<name>password</name>
<value>yourpassword</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/confluence?autoReconnect=true</value>
</parameter>
</ResourceParams>
|
confluence/WEB-INF/web.xml in your confluence installation</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>
|
java:comp/env/jdbc/confluencehibernate.<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>
|
bin/startup.sh or bin/startup.bat to start Tomcat with the new settings.I see "Can't call commit when autocommit=true" during an upgrade of Confluence or otherwise.
Check out http://jira.atlassian.com/browse/CONF-1710 This error can be fixed by adding:
&relaxAutoCommit=true
to the end of your JDBC url.
Example:
jdbc:mysql://localhost/confdb?autoReconnect=true&relaxAutoCommit=true
This JDBC url can be found in your confluence.cfg.xml file located in your confluence home folder.