https://paquita.masto.host/polkillas

Nextcloud 19 en la Raspberry Pi. Usando emojis

Traduzco la documentación oficial de Nextcloud para este punto.

Para usar emojis (iconitos basados en texto) en tu servidor Nextcloud con una base de datos MySQL, hay que realizar unos retoques en la instalación.

 

Soporte de MariaDB

(Haz esto si has seguido mi tutorial)

MariaDB 10.3 o posterior

  1. Asegúrate de que está presente la siguiente configuración en tu servidor MariaDB. En Raspbian, editamos el archivo de configuración con sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf. (Es recomendable hacer una copia de seguridad, por si acaso).

    [mysqld]
    innodb_file_per_table=1
    
  2. Si has tenido que cambiar la configuración en el punto 1, reinicia tu servidor con sudo service mysql restart.
  3. Cambia el juego de caracteres y la colación de la base de datos, cambiando nextcloud por el nombre que hayas puesto a la base de datos.
    ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    
  4. Marca la configuración mysql.utf8mb4 en tu config.php:

    sudo -u www-data php /var/www/html/occ config:system:set mysql.utf8mb4 --type boolean --value="true"
    
  5. Convierte todas las tablas existentes a la nueva colación ejecutando el paso de reparación:

    sudo -u www-data php /var/www/html/occ maintenance:repair
    
  6. Ahora ya puedes usar emojis en los nombres de archivo, eventos de calendario, comentarios, etc.

MariaDB 10.2 o anterior

  1. Asegúrate de que está presente la siguiente configuración en tu servidor MariaDB. En Raspbian, editamos el archivo de configuración con sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf. (Es recomendable hacer una copia de seguridad, por si acaso).

    [mysqld]
    innodb_large_prefix=true
    innodb_file_format=barracuda
    innodb_file_per_table=1
    
  2. Si has tenido que cambiar la configuración en el punto 1, reinicia tu servidor con sudo service mysql restart.
  3. Comprueba si el formato de archivo ha cambiado a Barracuda (cambia nube% por nombredelabasededatos% si es necesario):

    MariaDB> SELECT NAME, SPACE, FILE_FORMAT FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME like "nube%";
    

Si el formato de archivo es Barracuda para cada tabla, no queda nada por hacer. Continúa con las instrucciones para MySQL en el paso 3. Este ha sido mi caso, pero la documentación añade que en sus pruebas, el formato de todas las tablas era todavía «Antelope» y entonces se debe seguir con el paso 4 a continuación.

  1. Se necesita migrar manualmente las tablas a «Barracuda», una por una. Se pueden crear los comando SQL fácilmente, sin embargo (cambiando, otra vez, «nextcloud» por el nombre de la base de datos):
  2. MariaDB> USE INFORMATION_SCHEMA;
    MariaDB> SELECT CONCAT("ALTER TABLE `", TABLE_SCHEMA,"`.`", TABLE_NAME, "` ROW_FORMAT=DYNAMIC;") AS MySQLCMD FROM TABLES WHERE TABLE_SCHEMA = "nextcloud";
    

Esta orden devolverá un comando SQL para cada tabla en la base de datos de Nextcloud. Cada fila puede copiarse rápidamente en un editor de texto reemplazando los «|» y después se puede copiar de nuevo cada renglón en la línea de comandos de MariaDB. Si no aparece ningún error (si no estás seguro, comprueba el paso 2), hemos terminado y no hay que hacer nada más. Se puede continuar con los pasos de MySQL.

  1. Es posible, sin embargo, que no se pueda cambiar alguna de las tablas y la operación falle con “ERROR 1478 (HY000): Table storage engine ‘InnoDB’ does not support the create option ‘ROW_FORMAT’”. En este caso, estas tablas tienen un valor de SPACE de 0 en el paso 2. Básicamente, significa que la table no tiene un archivo de índice propio, que es un requisito del formato Barracuda. Se puede solucionar ocn un comando SQL ligeramente diferente:

    MariaDB> ALTER TABLE `nextcloud`.`oc_tablename` ROW_FORMAT=DYNAMIC, ALGORITHM=COPY;
    

Reemplaza oc_tablename con la tabla que falle. Si hay demasiado (lo que no pasó a los ingenieros de Nextcloud), se pueden generar comandos SQL para hacerlo en lote, pero lo dejan como tarea para el lector y a mí me supera.

  1. Ahora todo debería estar bien y se pueden seguir las instrucciones para MariaDB 10.3 a partir del paso 2.

En MySQL

(No hagas esto directamente si estás siguiendo mi tutorial)

  1. Actualiza tu servidor Nextcloud a la versión 11 o posterior. Con el tutorial, deberíamos estar en la versión 19.

  2. Asegúrate de que las siguientes configuraciones de InnoDB están así configuradas en el servidor MySQL. En Raspbian, editamos el archivo de configuración con sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf. (Es recomendable hacer una copia de seguridad, por si acaso). Si no están, copiamos en el archivo estas tres líneas debajo de [mysqld]. El lugar exacto da igual, pero por mantener el orden, se puede buscar la sección de InnoDB.

      • MySQL 8.0 o posterior:
[mysqld]
innodb_file_per_table=1
      • MySQL anterior a 8.0.
[mysqld]
innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=1
  1. Si has tenido que cambiar la configuración en el punto 1, reinicia tu servidor con sudo service mysql restart.
  1. Cambia el juego de caracteres y la colación de la base de datos, cambiando nextcloud por el nombre que hayas puesto a la base de datos.

    ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    
  2. Marca la configuración mysql.utf8mb4 en tu config.php:

    sudo -u www-data php /var/www/html/occ config:system:set mysql.utf8mb4 --type boolean --value="true"
    
  3. Convierte todas las tablas existentes a la nueva colación ejecutando el paso de reparación:

    sudo -u www-data php /var/www/html/occ maintenance:repair
    

Now you should be able to use Emojis in your file names, calendar events, comments and many more.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.