Ir al contenido
Otras versiones

Cargando…

Configurar MySQL y MariaDB

Compruebe si su instalación de MySQL tiene habilitado el motor InnoDB:

Ventana de terminal
$ MySQL -h localhost -u root -p
> show engines;

En caso de que el motor por defecto sea otro, hay dos opciones:

  1. Utilizar el dialecto com.openkm.db.dialect.MySQL5InnoDBDialect y evitar cambiar el motor de almacenamiento por defecto de MySQL.
  2. 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

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

Ventana de terminal
character-set-server = utf8
collation-server = utf8_general_ci

/etc/mysql/mariadb.conf.d/50-client.cnf

Ventana de terminal
default-character-set = utf8

/etc/mysql/mariadb.conf.d/50-mysql-clients.cnf

Ventana de terminal
default-character-set = utf8

Una vez modificados, es necesario reiniciar el servidor de base de datos.

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 el siguiente comando:

Ventana de terminal
$ MySQL show -h localhost -u root -p --status okmdb;

Más información en MySQL: Case Sensitivity in String Searches

Edite el archivo $TOMCAT_HOME/openkm.properties

spring.jpa.hibernate.ddl-auto=create-only
spring.jpa.properties.hibernate.dialect=com.openkm.db.dialect.MySQL5InnoDBDialect

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:

Ventana de terminal
SELECT * FROM MySQL.time_zone_name

Así, por ejemplo, podría configurar su conexión jdbc de esta forma si la zona horaria de su sistema es, por ejemplo, UTC+1:

Ventana de terminal
spring.data source.url=jdbc:mysql://localhost:3306/okmdb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8&nullNamePatternMatchesAll=true&serverTimezone=Europe/Madrid

Donde Europe/Madrid es un valor válido tomado de la tabla time_zone_name.

Edite el archivo $TOMCAT_HOME/openkm.properties y habilite el recurso llamado JDBC/OpenKMDS

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/okmdb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8&nullNamePatternMatchesAll=true&serverTimezone=Europe/Madrid
spring.datasource.username=openkm
spring.datasource.password=*secret*
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/okmdb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8&nullNamePatternMatchesAll=true&serverTimezone=Europe/Madrid
spring.datasource.username=openkm
spring.datasource.password=*secret*

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.properties

authentication.openkm.database=true

Como parte del proceso de arranque de OpenKM, la aplicación creará automáticamente una estructura de base de datos vacía.

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:

Ventana de terminal
c:\> mysqld --remove MySQL57

o

Ventana de terminal
c:\> sc delete MySQL57

Cree el servicio:

Ventana de terminal
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"

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';