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 org.hibernate.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:

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

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

Edite el archivo $TOMCAT_HOME/OpenKM.cfg para que quede

hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.hbm2ddl=create

o (recomendado)

hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
hibernate.hbm2ddl=create

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.datasource.url=jdbc:mysql://localhost:3306/okmdb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8&serverTimezone=Europe/Madrid

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

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&amp;useUnicode=true&amp;characterEncoding=UTF8"/>
<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&amp;autoReconnect=true&amp;useUnicode=true&amp;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>

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.

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