Difference between revisions of "MySQL - OpenKM 6.2"
From OpenKM Documentation
(→Tomcat datasources) |
(→Database creation) |
||
(10 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
<source lang="java"> | <source lang="java"> | ||
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect | hibernate.dialect=org.hibernate.dialect.MySQL5Dialect | ||
+ | hibernate.hbm2ddl=create | ||
+ | </source> | ||
+ | |||
+ | or | ||
+ | |||
+ | <source lang="java"> | ||
+ | hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect | ||
hibernate.hbm2ddl=create | hibernate.hbm2ddl=create | ||
</source> | </source> | ||
Line 16: | Line 23: | ||
== Database creation == | == Database creation == | ||
− | Starting with OpenKM 6.0, only one database is needed: | + | Check if your MySQL installation has InnoDB engine enabled: |
+ | |||
+ | <source lang="bash"> | ||
+ | $ mysql -h localhost -u root -p | ||
+ | mysql> show engines; | ||
+ | </source> | ||
+ | |||
+ | {{Note|You can use the '''org.hibernate.dialect.MySQL5InnoDBDialect''' dialect and avoid changing the default MySQL Storage Engine.}} | ||
+ | |||
+ | Edit /etc/mysql/my.cnf and under [mysqld] section in your ini file, add: | ||
+ | |||
+ | <source lang="bash"> | ||
+ | default-storage-engine = innodb | ||
+ | </source> | ||
+ | |||
+ | {{Note|Starting with OpenKM 6.0, only one database is needed.}} | ||
+ | |||
+ | Now create databases and user: | ||
<source lang="sql"> | <source lang="sql"> | ||
− | DROP DATABASE IF EXISTS | + | DROP DATABASE IF EXISTS okmdb; |
− | CREATE DATABASE | + | CREATE DATABASE okmdb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin; |
CREATE USER openkm@localhost IDENTIFIED BY '*secret*'; | CREATE USER openkm@localhost IDENTIFIED BY '*secret*'; | ||
− | GRANT ALL ON | + | GRANT ALL ON okmdb.* TO openkm@localhost WITH GRANT OPTION; |
+ | </source> | ||
+ | |||
+ | You can check the database engine with: | ||
+ | |||
+ | <source lang="bash"> | ||
+ | $ mysqlshow -h localhost -u root -p --status okmdb; | ||
</source> | </source> | ||
Line 36: | Line 66: | ||
maxActive="100" maxIdle="30" maxWait="10000" validationQuery="select 1" | maxActive="100" maxIdle="30" maxWait="10000" validationQuery="select 1" | ||
username="openkm" password="*secret*" driverClassName="com.mysql.jdbc.Driver" | username="openkm" password="*secret*" driverClassName="com.mysql.jdbc.Driver" | ||
− | url="jdbc:mysql://localhost:3306/ | + | url="jdbc:mysql://localhost:3306/okmdb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8"/> |
</source> | </source> | ||
Line 53: | Line 83: | ||
</security:authentication-manager> | </security:authentication-manager> | ||
</source> | </source> | ||
+ | |||
+ | == More information == | ||
+ | * [http://dev.mysql.com/doc/refman/5.0/en/innodb-tuning.html InnoDB Performance Tuning Tips] | ||
+ | * [http://dba.stackexchange.com/questions/21209/innodb-high-disk-write-i-o-on-ibdata1-file-and-ib-logfile0 InnoDB - High disk write I/O on ibdata1 file and ib_logfile0] | ||
[[Category: Installation Guide]] | [[Category: Installation Guide]] |
Latest revision as of 09:54, 5 November 2013
In this OpenKM release you can create the databases automatically configuring the hibernate.dialect and hibernate.hbm2ddl properties in OpenKM.cfg.
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.hbm2ddl=create
or
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
hibernate.hbm2ddl=create
Once the tables are created, OpenKM will automatically change the hibernate.hbm2ddl property from create to none.
More info about this at:
Database creation
Check if your MySQL installation has InnoDB engine enabled:
$ mysql -h localhost -u root -p
mysql> show engines;
You can use the org.hibernate.dialect.MySQL5InnoDBDialect dialect and avoid changing the default MySQL Storage Engine. |
Edit /etc/mysql/my.cnf and under [mysqld] section in your ini file, add:
default-storage-engine = innodb
Starting with OpenKM 6.0, only one database is needed. |
Now create databases and user:
DROP DATABASE IF EXISTS okmdb;
CREATE DATABASE okmdb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;
CREATE USER openkm@localhost IDENTIFIED BY '*secret*';
GRANT ALL ON okmdb.* TO openkm@localhost WITH GRANT OPTION;
You can check the database engine with:
$ mysqlshow -h localhost -u root -p --status okmdb;
More info at MySQL: Case Sensitivity in String Searches.
Tomcat datasources
$ vim $TOMCAT_HOME/conf/server.xml
<Resource name="jdbc/OpenKMDS" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" validationQuery="select 1"
username="openkm" password="*secret*" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/okmdb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8"/>
Login configuration
$ vim $TOMCAT_HOME/OpenKM.xml
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider>
<security:password-encoder hash="md5"/>
<security:jdbc-user-service
data-source-ref="dataSource"
users-by-username-query="select usr_id, usr_password, 1 from OKM_USER where usr_id=? and usr_active='T'"
authorities-by-username-query="select ur_user, ur_role from OKM_USER_ROLE where ur_user=?"/>
</security:authentication-provider>
</security:authentication-manager>