Ir al contenido
Otras versiones

Cargando…

Configuración de 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 el caso de que el motor predeterminado sea otro, hay dos opciones:

  1. Utilizar el dialecto com.openkm.db.dialect.MySQL5InnoDBDialect y evitar cambiar el motor de almacenamiento predeterminado de MySQL.
  2. Cambiar el motor predeterminado

Modifique el fichero de configuración de MySQL llamado my.cnf

y en la sección [mysqld], añada

default-storage-engine = innodb

Cambio del juego de caracteres predeterminado

Sección titulada «Cambio del juego de caracteres predeterminado»

En Ubuntu 16.04, el juego de caracteres predeterminado configurado en MariaDB y MySQL es utf8mb4, pero recomendamos cambiarlo a utf8. Para obtener el juego de caracteres recomendado, debe modificar estos ficheros:

/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 lo siguiente:

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 fichero $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 en su conexión JDBC según la zona horaria configurada en su sistema, primero puede consultar 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 este modo si la zona horaria de su sistema es UTC+1:

Ventana de terminal
spring.datasource.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 fichero $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*

Configure el inicio de sesión de la aplicación

Sección titulada «Configure el inicio de sesión de la aplicación»

Edite el fichero $TOMCAT_HOME/openkm.properties

authentication.openkm.database=true

Durante el arranque de OpenKM, la aplicación creará automáticamente una estructura de base de datos vacía.

Eliminación y creación del servicio MySQL en Windows.

Sección titulada «Eliminación y creación del servicio MySQL en Windows.»

Si tiene un 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"

Cuando migre de Windows a Linux, debe convertir a mayúsculas los nombres de tabla que estén en minúsculas. El siguiente script le ayudará a hacerlo:

select concat('rename table ', table_name, ' to ' , upper(table_name) , ';') from information_schema.tables where table_schema = 'okmdb';