Configuración de 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 el caso de que el motor predeterminado sea otro, hay dos opciones:
- Utilizar el dialecto com.openkm.db.dialect.MySQL5InnoDBDialect y evitar cambiar el motor de almacenamiento predeterminado de MySQL.
- Cambiar el motor predeterminado
Cambio del motor predeterminado
Sección titulada «Cambio del 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
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»Cree una base de datos y un usuario
Sección titulada «Cree 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 lo siguiente:
$ mysql show -h localhost -u root -p --status okmdb;Más información en MySQL: Case Sensitivity in String Searches
Configure su openkm.properties
Sección titulada «Configure su openkm.properties»Edite el fichero $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 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:
SELECT * FROM MySQL.time_zone_nameAsí, por ejemplo, podría configurar su conexión JDBC de este modo si la zona horaria de su sistema es UTC+1:
spring.datasource.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.
Configure los orígenes de datos de Tomcat
Sección titulada «Configure los orígenes de datos de Tomcat»Edite el fichero $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*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=trueEjecute la aplicación
Sección titulada «Ejecute la aplicación»Durante el 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»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:
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"Migración de Windows a Linux
Sección titulada «Migración de Windows a Linux»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';