Configurar MySQL y MariaDB
Preliminares
Sección titulada «Preliminares»Compruebe si su instalación de MySQL tiene habilitado el motor InnoDB:
$ mysql -h localhost -u root -p> show engines;En caso de que el motor por defecto sea otro, hay dos opciones:
- Utilizar el dialecto org.hibernate.dialect.MySQL5InnoDBDialect y evitar cambiar el motor de almacenamiento por defecto de MySQL.
- Cambiar el motor por defecto
Cambiar el motor por defecto
Sección titulada «Cambiar el motor por defecto»Modifique el archivo de configuración de MySQL llamado my.cnf
y bajo [mysqld] añada
default-storage-engine = innodb
Cambiar el juego de caracteres por defecto
Sección titulada «Cambiar el juego de caracteres por defecto»En Ubuntu 16.04, el juego de caracteres por defecto configurado en MariaDB y MySQL es utf8mb4, pero recomendamos cambiarlo a utf8. Para obtener el juego de caracteres recomendado debe modificar estos archivos:
/etc/mysql/mariadb.conf.d/50-server.cnf
character-set-server = utf8collation-server = utf8_general_ci/etc/mysql/mariadb.conf.d/50-client.cnf
default-character-set = utf8/etc/mysql/mariadb.conf.d/50-mysql-clients.cnf
default-character-set = utf8Una vez modificados, es necesario reiniciar el servidor de base de datos.
Creación de la base de datos
Sección titulada «Creación de la base de datos»Crear una base de datos y un usuario
Sección titulada «Crear una base de datos y un usuario»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;Puede comprobar el motor de la base de datos con:
$ mysqlshow -h localhost -u root -p --status okmdb;Más información en MySQL: Case Sensitivity in String Searches
Configurar su OpenKM.cfg
Sección titulada «Configurar su OpenKM.cfg»Edite el archivo $TOMCAT_HOME/OpenKM.cfg para que quede
hibernate.dialect=org.hibernate.dialect.MySQL5Dialecthibernate.hbm2ddl=createo (recomendado)
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialecthibernate.hbm2ddl=createZona horaria de MySQL
Sección titulada «Zona horaria de MySQL»Si desea establecer la zona horaria de su conexión jdbc según la zona horaria configurada en su sistema, primero puede ver las correspondencias, tanto en MySQL como en MariaDB, de esta forma:
SELECT * FROM mysql.time_zone_nameAsí, por ejemplo, podría configurar su conexión jdbc de esta forma si la zona horaria de su sistema es, por ejemplo, UTC+1:
spring.datasource.url=jdbc:mysql://localhost:3306/okmdb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8&serverTimezone=Europe/MadridDonde Europe/Madrid es un valor válido tomado de la tabla time_zone_name.
Configurar los datasources de Tomcat
Sección titulada «Configurar los datasources de Tomcat»Edite el archivo $TOMCAT_HOME/conf/server.xml y habilite el recurso llamado jdbc/OpenKMDS
<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"/>MariaDB:
Sección titulada «MariaDB:»<Resource name="jdbc/OpenKMDS" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" validationQuery="select 1" username="openkm" password="*secret*" driverClassName="org.mariadb.jdbc.Driver" url="jdbc:mariadb://localhost:3306/okmdb?useSSL=false&autoReconnect=true&useUnicode=true&characterEncoding=UTF8"/>Configurar el inicio de sesión de la aplicación
Sección titulada «Configurar el inicio de sesión de la aplicación»Edite el archivo $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>Comprobar el driver JDBC
Sección titulada «Comprobar el driver JDBC»Vaya a $TOMCAT_HOME/lib y compruebe que existe el driver JDBC mysql-connector-java-5.1.12-bin.jar.
Si no está presente, descargue el driver JDBC de MySQL desde la página de MySQL y añádalo.
Ejecutar la aplicación
Sección titulada «Ejecutar la aplicación»Como parte del proceso de arranque de OpenKM, la aplicación creará automáticamente una estructura de base de datos vacía.
Información adicional
Sección titulada «Información adicional»Eliminar y crear el servicio de MySQL en Windows
Sección titulada «Eliminar y crear el servicio de MySQL en Windows»Si tiene el servicio de Windows de MySQL, puede eliminarlo con una de estas líneas de comandos:
c:\> mysqld --remove MySQL57o
c:\> sc delete MySQL57Cree el servicio:
c:\> "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" --install MYSQL57 --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini"Migrar de Windows a Linux
Sección titulada «Migrar de Windows a Linux»Al migrar de Windows a Linux debe convertir los nombres de tabla de minúsculas a mayúsculas. El siguiente script le ayudará con ello:
select concat('rename table ', table_name, ' to ' , upper(table_name) , ';') from information_schema.tables where table_schema = 'okmdb';