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 com.openkm.db.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 el siguiente comando:
$ MySQL show -h localhost -u root -p --status okmdb;Más información en MySQL: Case Sensitivity in String Searches
Configurar su openkm.properties
Sección titulada «Configurar su openkm.properties»Edite el archivo $TOMCAT_HOME/openkm.properties
spring.jpa.hibernate.ddl-auto=create-onlyspring.jpa.properties.hibernate.dialect=com.openkm.db.dialect.MySQL5InnoDBDialectZona 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.data source.url=jdbc:mysql://localhost:3306/okmdb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8&nullNamePatternMatchesAll=true&serverTimezone=Europe/MadridDonde Europe/Madrid es un valor válido tomado de la tabla time_zone_name.
Configurar los orígenes de datos de Tomcat
Sección titulada «Configurar los orígenes de datos de Tomcat»Edite el archivo $TOMCAT_HOME/openkm.properties y habilite el recurso llamado JDBC/OpenKMDS
spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/okmdb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8&nullNamePatternMatchesAll=true&serverTimezone=Europe/Madridspring.datasource.username=openkmspring.datasource.password=*secret*MariaDB:
Sección titulada «MariaDB:»spring.datasource.driver-class-name=org.mariadb.jdbc.Driverspring.datasource.url=jdbc:mariadb://localhost:3306/okmdb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8&nullNamePatternMatchesAll=true&serverTimezone=Europe/Madridspring.datasource.username=openkmspring.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=trueEjecutar 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';