|
|
(55 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
− | Download MySQL JDBC driver from [http://www.mysql.com/products/connector/ MySQL Home Page] and move it to ''$JBOSS_HOME/server/default/lib''.
| + | {{TOCright}} __TOC__ |
| | | |
− | == Repository configuration ==
| + | 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.. |
| | | |
− | <source lang="xml">
| + | {{Note|If you get an error like this: |
− | <?xml version="1.0" encoding="UTF-8"?>
| + | |
− | <Repository>
| + | Packet for query is too large (1708726 > 1048576). |
− | <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
| + | You can change this value on the server by setting the 'max_allowed_packet' variable. |
− | <param name="path" value="${rep.home}/repository"/>
| + | |
− | </FileSystem>
| + | 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''.}} |
− | <Security appName="OpenKM">
| + | |
− | <AccessManager class="com.openkm.core.OKMAccessManager"/>
| + | * [[MySQL-OpenKM 6.0 | OpenKM 6.0]] (also valid for OpenKM 6.X+) |
− | </Security>
| + | * [[MySQL-OpenKM 5.0 | OpenKM 5.0]] (also valid for OpenKM 5.X+) |
− | <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
| + | * [[MySQL-OpenKM 4.1 | OpenKM 4.1]] |
− | <Workspace name="${wsp.name}">
| + | |
− | <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
| + | == Change MySQL default engine to InnoDB == |
− | <param name="path" value="${wsp.home}"/>
| + | Check if your MySQL installation has InnoDB engin enabled: |
− | </FileSystem>
| + | |
− | <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
| + | $ mysql -h localhost -u root -p |
− | <param name="driver" value="com.mysql.jdbc.Driver"/>
| + | mysql> show engines; |
− | <param name="url" value="jdbc:mysql://localhost:3306/openkm?autoReconnect=true"/>
| + | |
− | <param name="schema" value="mysql"/>
| + | In order to change the default storage engine edit '''/etc/mysql/my.cnf''' and under '''[mysqld]''' section in your ini file, and add: |
− | <param name="user" value="root"/>
| + | |
− | <param name="password" value="xxx"/>
| + | default-storage-engine = innodb |
− | <param name="schemaObjectPrefix" value="${wsp.name}_"/>
| + | |
− | <param name="externalBLOBs" value="false"/>
| + | {{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.}} |
− | </PersistenceManager>
| + | |
− | <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
| + | If you want to show which engine is using every table, do: |
− | <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="root"/>
| |
− | <param name="password" value="xxx"/>
| |
− | <param name="schemaObjectPrefix" value="version_"/>
| |
− | <param name="externalBLOBs" value="false"/>
| |
− | </PersistenceManager>
| |
− | </Versioning>
| |
− | </Repository>
| |
− | </source>
| |
| | | |
− | == Database creation ==
| |
| <source lang="sql"> | | <source lang="sql"> |
− | #
| + | SHOW TABLE STATUS WHERE name like 'OKM_%'; |
− | # 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> |
| + | |
| + | To see all the tables included in a database: |
| | | |
| <source lang="sql"> | | <source lang="sql"> |
− | #
| + | SHOW FULL TABLES FROM okmdb; |
− | # Generic auth database definition
| + | </source> |
− | #
| |
− | 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
| + | You can also filter by table name: |
− | INSERT INTO users (usr_id, usr_name, usr_pass, usr_email, usr_active) VALUES ('okmAdmin', 'Administrator', '21232f297a57a5a743894a0e4a801fc3', '', true);
| |
− | 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"> | | <source lang="sql"> |
− | #
| + | SHOW FULL TABLES FROM okmdb LIKE 'OKM_%' |
− | # 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> | | </source> |
| | | |
− | == Workflow engine == | + | == Database repair == |
− | You have to modify the file ''WEB-INF/classes/hibernate.cfg.xml'' located inside the OpenKM.war archive. These are the entries to change:
| + | If you have problems with a database and need to be repaired, you can use this command: |
− | | |
− | <source lang="xml">
| |
− | <!-- hibernate dialect -->
| |
− | <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
| |
− | | |
− | <!-- JDBC connection properties (begin) ===
| |
− | <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) -->
| |
− | </source>
| |
| | | |
− | to
| + | $ mysqlcheck -u root -p --auto-repair --optimize --all-databases |
| | | |
− | <source lang="xml">
| + | See also: |
− | <!-- hibernate dialect -->
| + | * [http://dev.mysql.com/doc/refman/5.0/en/converting-tables-to-innodb.html Converting Tables from Other Storage Engines to InnoDB] |
− | <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
| + | * [http://highervisibilitywebsites.com/convert-your-mysql-database-myisam-innodb-and-get-ready-drupal-7-same-time Convert your MySQL database from MyISAM to InnoDB] |
| | | |
− | <!-- JDBC connection properties (begin) -->
| + | [[Category: Installation Guide]] |
− | <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
| |
− | <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/openkm</property>
| |
− | <property name="hibernate.connection.username">root</property>
| |
− | <property name="hibernate.connection.password">xxx</property>
| |
− | <!-- JDBC connection properties (end) -->
| |
− | </source>
| |
If you have problems with a database and need to be repaired, you can use this command: