|
|
(42 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| {{TOCright}} __TOC__ | | {{TOCright}} __TOC__ |
| | | |
− | Download MySQL JDBC driver from [http://www.mysql.com/products/connector/ MySQL Home Page] and move it to ''$JBOSS_HOME/server/default/lib''. | + | Download MySQL JDBC driver from [http://www.mysql.com/products/connector/ MySQL Home Page] and move it to ''$TOMCAT_HOME/lib'' or ''$JBOSS_HOME/server/default/lib'' depending on your OpenKM version.. |
| | | |
− | == Repository configuration ==
| + | {{Note|If you get an error like this: |
| | | |
− | <source lang="xml">
| + | Packet for query is too large (1708726 > 1048576). |
− | <?xml version="1.0" encoding="UTF-8"?>
| + | You can change this value on the server by setting the 'max_allowed_packet' variable. |
− | <Repository>
| |
− | <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
| |
− | <param name="path" value="${rep.home}/repository"/>
| |
− | </FileSystem>
| |
− | <Security appName="OpenKM">
| |
− | <AccessManager class="com.openkm.core.OKMAccessManager"/>
| |
− | </Security>
| |
− | <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
| |
− | <Workspace name="${wsp.name}">
| |
− | <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
| |
− | <param name="path" value="${wsp.home}"/>
| |
− | </FileSystem>
| |
− | <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
| |
− | <param name="driver" value="com.mysql.jdbc.Driver"/>
| |
− | <param name="url" value="jdbc:mysql://localhost:3306/openkm?autoReconnect=true"/>
| |
− | <param name="schema" value="db_user"/>
| |
− | <param name="user" value="db_pass"/>
| |
− | <param name="password" value="xxx"/>
| |
− | <param name="schemaObjectPrefix" value="${wsp.name}_"/>
| |
− | <param name="externalBLOBs" value="false"/>
| |
− | </PersistenceManager>
| |
− | <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
| |
− | <param name="path" value="${wsp.home}/index"/>
| |
− | <param name="useCompoundFile" value="true"/>
| |
− | <param name="minMergeDocs" value="100"/>
| |
− | <param name="volatileIdleTime" value="3"/>
| |
− | <param name="maxMergeDocs" value="100000"/>
| |
− | <param name="mergeFactor" value="10"/>
| |
− | <param name="bufferSize" value="10"/>
| |
− | <param name="cacheSize" value="1000"/>
| |
− | <param name="forceConsistencyCheck" value="false"/>
| |
− | <param name="autoRepair" value="true"/>
| |
− | <param name="analyzer" value="org.apache.lucene.analysis.standard.StandardAnalyzer"/>
| |
− | <param name="respectDocumentOrder" value="false"/>
| |
− | <param name="indexingConfiguration" value="$ {wsp.home}/../../../indexing_configuration.xml"/>
| |
− | <param name="textFilterClasses" value="
| |
− | org.apache.jackrabbit.core.query.lucene.TextPlainTextFilter,
| |
− | org.apache.jackrabbit.extractor.PdfTextExtractor,
| |
− | org.apache.jackrabbit.extractor.HTMLTextExtractor,
| |
− | org.apache.jackrabbit.extractor.XMLTextExtractor,
| |
− | org.apache.jackrabbit.extractor.RTFTextExtractor,
| |
− | org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,
| |
− | com.openkm.extractor.MsExcelTextExtractor,
| |
− | com.openkm.extractor.MsPowerPointTextExtractor,
| |
− | com.openkm.extractor.MsWordTextExtractor,
| |
− | com.openkm.extractor.MsOffice2007TextExtractor,
| |
− | com.openkm.extractor.ExifTextExtractor,
| |
− | com.openkm.extractor.TiffTextExtractor,
| |
− | com.openkm.extractor.AudioTextExtractor" />
| |
− | </SearchIndex>
| |
− | </Workspace>
| |
− | <Versioning rootPath="${rep.home}/version">
| |
− | <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
| |
− | <param name="path" value="${rep.home}/version"/>
| |
− | </FileSystem>
| |
− | <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
| |
− | <param name="driver" value="com.mysql.jdbc.Driver"/>
| |
− | <param name="url" value="jdbc:mysql://localhost:3306/openkm?autoReconnect=true"/>
| |
− | <param name="schema" value="mysql"/>
| |
− | <param name="user" value="db_user"/>
| |
− | <param name="password" value="db_pass"/>
| |
− | <param name="schemaObjectPrefix" value="version_"/>
| |
− | <param name="externalBLOBs" value="false"/>
| |
− | </PersistenceManager>
| |
− | </Versioning>
| |
− | </Repository>
| |
− | </source>
| |
| | | |
− | More info about this at [http://jackrabbit.apache.org/jackrabbit-configuration.html Jackrabbit Configuration].
| + | You need to modify your MySQL server configuration file and increase the value of the '''max_allowed_packet''' property. Don't forget to restart the MySQL after any change in this file. In Debian based distros like Ubuntu, this configuration file is located at ''/etc/mysql/my.cnf''.}} |
| | | |
− | == Database creation ==
| + | * [[MySQL-OpenKM 6.0 | OpenKM 6.0]] (also valid for OpenKM 6.X+) |
− | <source lang="sql">
| + | * [[MySQL-OpenKM 5.0 | OpenKM 5.0]] (also valid for OpenKM 5.X+) |
− | #
| + | * [[MySQL-OpenKM 4.1 | OpenKM 4.1]] |
− | # Generic activity database definition
| |
− | #
| |
− | CREATE TABLE activity(act_date TIMESTAMP, act_user VARCHAR(32), act_token VARCHAR(48), act_action VARCHAR(48), act_item VARCHAR(256), act_params VARCHAR(256));
| |
− | </source>
| |
| | | |
− | <source lang="sql">
| + | == Change MySQL default engine to InnoDB == |
− | #
| + | Check if your MySQL installation has InnoDB engin enabled: |
− | # Generic auth database definition
| |
− | #
| |
− | CREATE TABLE users(usr_id VARCHAR(32), usr_name VARCHAR(64), usr_pass VARCHAR(32) NOT NULL, usr_email VARCHAR(32) NOT NULL, usr_active BOOLEAN, PRIMARY KEY(usr_id));
| |
− | CREATE TABLE roles(rol_id VARCHAR(32), PRIMARY KEY(rol_id));
| |
− | CREATE TABLE user_role(ur_user VARCHAR(32), ur_role VARCHAR(32), PRIMARY KEY(ur_user, ur_role));
| |
− | CREATE TABLE mail_accounts(ma_id INTEGER AUTO_INCREMENT, ma_user VARCHAR(32), ma_mhost VARCHAR(32), ma_muser VARCHAR(32), ma_mpass VARCHAR(32), ma_mfolder VARCHAR(32), ma_active BOOLEAN, PRIMARY KEY(ma_id));
| |
− | CREATE TABLE twitter_accounts(ta_id INTEGER AUTO_INCREMENT, ta_user VARCHAR(32), ta_tuser VARCHAR(32), ta_active BOOLEAN, PRIMARY KEY(ta_id));
| |
| | | |
− | # INSERT DEFAULT USER / ROLES
| + | $ mysql -h localhost -u root -p |
− | INSERT INTO users (usr_id, usr_name, usr_pass, usr_email, usr_active) VALUES ('okmAdmin', 'Administrator', '21232f297a57a5a743894a0e4a801fc3', '', true);
| + | mysql> show engines; |
− | INSERT INTO roles (rol_id) VALUES ('AdminRole');
| |
− | INSERT INTO roles (rol_id) VALUES ('UserRole');
| |
− | INSERT INTO user_role (ur_user, ur_role) VALUES ('okmAdmin', 'AdminRole');
| |
− | </source>
| |
| | | |
− | <source lang="sql">
| + | In order to change the default storage engine edit '''/etc/mysql/my.cnf''' and under '''[mysqld]''' section in your ini file, and add: |
− | #
| |
− | # Generic dashboard stats database definition
| |
− | #
| |
− | CREATE TABLE dashboard_stats(ds_user VARCHAR(32), ds_source VARCHAR(64), ds_node VARCHAR(256), ds_date TIMESTAMP);
| |
− | </source>
| |
| | | |
− | == Workflow engine ==
| + | default-storage-engine = innodb |
− | You have to modify the file ''WEB-INF/classes/hibernate.cfg.xml'' located inside the OpenKM.war archive. These are the entries to change:
| |
| | | |
− | <source lang="xml">
| + | {{Advice|[http://en.wikipedia.org/wiki/InnoDB InnoDB] is the preferred engine because it support transactions. [http://en.wikipedia.org/wiki/MyISAM MyISAM] is more responsive but does not support transactions.}} |
− | <!-- hibernate dialect -->
| |
− | <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
| |
| | | |
− | <!-- JDBC connection properties (begin) ===
| + | If you want to show which engine is using every table, do: |
− | <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
| |
− | <property name="hibernate.connection.url">jdbc:hsqldb:mem:jbpm</property>
| |
− | <property name="hibernate.connection.username">sa</property>
| |
− | <property name="hibernate.connection.password"></property>
| |
− | ==== JDBC connection properties (end) -->
| |
| | | |
− | <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property> | + | <source lang="sql"> |
− |
| + | SHOW TABLE STATUS WHERE name like 'OKM_%'; |
− | <!-- DataSource properties (begin) -->
| |
− | <property name="hibernate.connection.datasource">java:/OKMWorkflowDS</property>
| |
− | <!-- <property name="hibernate.hbm2ddl.auto">update</property> -->
| |
− | <!-- DataSource properties (end) -->
| |
| </source> | | </source> |
| | | |
− | to
| + | To see all the tables included in a database: |
| | | |
− | <source lang="xml"> | + | <source lang="sql"> |
− | <!-- hibernate dialect -->
| + | SHOW FULL TABLES FROM okmdb; |
− | <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
| + | </source> |
| | | |
− | <!-- JDBC connection properties (begin) ===
| + | You can also filter by table name: |
− | <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
| |
− | <property name="hibernate.connection.url">jdbc:hsqldb:mem:jbpm</property>
| |
− | <property name="hibernate.connection.username">sa</property>
| |
− | <property name="hibernate.connection.password"></property>
| |
− | ==== JDBC connection properties (end) -->
| |
| | | |
− | <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property> | + | <source lang="sql"> |
− |
| + | SHOW FULL TABLES FROM okmdb LIKE 'OKM_%' |
− | <!-- DataSource properties (begin) -->
| |
− | <property name="hibernate.connection.datasource">java:/OKMWorkflowDS</property>
| |
− | <property name="hibernate.hbm2ddl.auto">update</property>
| |
− | <!-- DataSource properties (end) -->
| |
| </source> | | </source> |
| | | |
− | More info about this at [http://docs.jboss.org/jbpm/v3/userguide/thejbpmdatabase.html The jBPM Database].
| + | == Database repair == |
| + | If you have problems with a database and need to be repaired, you can use this command: |
| | | |
− | == JBoss datasources ==
| + | $ mysqlcheck -u root -p --auto-repair --optimize --all-databases |
− | <source lang="xml">
| |
− | <?xml version="1.0" encoding="UTF-8"?>
| |
− | <datasources>
| |
− | <!-- OpenKM User Activity -->
| |
− | <local-tx-datasource>
| |
− | <jndi-name>OKMActivityDS</jndi-name>
| |
− | <connection-url>jdbc:mysql://localhost:3306/openkm</connection-url>
| |
− | <driver-class>com.mysql.jdbc.Driver</driver-class>
| |
− | <user-name>db_user</user-name>
| |
− | <password>db_pass</password>
| |
− | <min-pool-size>5</min-pool-size>
| |
− | <max-pool-size>20</max-pool-size>
| |
− | <idle-timeout-minutes>0</idle-timeout-minutes>
| |
− | <track-statements/>
| |
− | <prepared-statement-cache-size>32</prepared-statement-cache-size>
| |
− | <metadata>
| |
− | <type-mapping>mySQL</type-mapping>
| |
− | </metadata>
| |
− | </local-tx-datasource>
| |
− |
| |
− | <!-- OpenKM User Auth -->
| |
− | <local-tx-datasource>
| |
− | <jndi-name>OKMAuthDS</jndi-name>
| |
− | <connection-url>jdbc:mysql://localhost:3306/openkm</connection-url>
| |
− | <driver-class>com.mysql.jdbc.Driver</driver-class>
| |
− | <user-name>db_user</user-name>
| |
− | <password>db_pass</password>
| |
− | <min-pool-size>5</min-pool-size>
| |
− | <max-pool-size>20</max-pool-size>
| |
− | <idle-timeout-minutes>0</idle-timeout-minutes>
| |
− | <track-statements/>
| |
− | <prepared-statement-cache-size>32</prepared-statement-cache-size>
| |
− | <metadata>
| |
− | <type-mapping>mySQL</type-mapping>
| |
− | </metadata>
| |
− | </local-tx-datasource>
| |
− |
| |
− | <!-- OpenKM Dashboard Stats --> | |
− | <local-tx-datasource>
| |
− | <jndi-name>OKMDashboardStatsDS</jndi-name>
| |
− | <connection-url>jdbc:mysql://localhost:3306/openkm</connection-url>
| |
− | <driver-class>com.mysql.jdbc.Driver</driver-class>
| |
− | <user-name>db_user</user-name>
| |
− | <password>db_pass</password>
| |
− | <min-pool-size>5</min-pool-size>
| |
− | <max-pool-size>20</max-pool-size>
| |
− | <idle-timeout-minutes>0</idle-timeout-minutes>
| |
− | <track-statements/>
| |
− | <prepared-statement-cache-size>32</prepared-statement-cache-size>
| |
− | <metadata>
| |
− | <type-mapping>mySQL</type-mapping>
| |
− | </metadata>
| |
− | </local-tx-datasource>
| |
− |
| |
− | <!-- OpenKM Workflow -->
| |
− | <local-tx-datasource>
| |
− | <jndi-name>OKMWorkflowDS</jndi-name>
| |
− | <connection-url>jdbc:mysql://localhost:3306/openkm</connection-url>
| |
− | <driver-class>com.mysql.jdbc.Driver</driver-class>
| |
− | <user-name>db_user</user-name>
| |
− | <password>db_pass</password>
| |
− | <min-pool-size>5</min-pool-size>
| |
− | <max-pool-size>20</max-pool-size>
| |
− | <idle-timeout-minutes>0</idle-timeout-minutes>
| |
− | <track-statements/>
| |
− | <prepared-statement-cache-size>32</prepared-statement-cache-size>
| |
− | <metadata>
| |
− | <type-mapping>mySQL</type-mapping>
| |
− | </metadata>
| |
− | </local-tx-datasource>
| |
− | </datasources>
| |
− | </source>
| |
| | | |
− | More info about this at [http://www.jboss.org/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/4/html/Connectors_on_JBoss-Configuring_JDBC_DataSources.html Configuring JDBC DataSources].
| + | See also: |
| + | * [http://dev.mysql.com/doc/refman/5.0/en/converting-tables-to-innodb.html Converting Tables from Other Storage Engines to InnoDB] |
| + | * [http://highervisibilitywebsites.com/convert-your-mysql-database-myisam-innodb-and-get-ready-drupal-7-same-time Convert your MySQL database from MyISAM to InnoDB] |
| | | |
| [[Category: Installation Guide]] | | [[Category: Installation Guide]] |
If you have problems with a database and need to be repaired, you can use this command: