Diferencia entre revisiones de «MySQL soporte unicode completo»

De MoodleDocs
(added page)
 
(tidy up)
Línea 7: Línea 7:
MySQL si soporta UTF-8 completamente. Requiere que se configuren ciertos ajustes. A partir de Moodle 3.3 el valor por defecto será usar  [[UTF-8]] completo para [[MySQL]] y [[MariaDB]]. Las Bases de datos existentes seguirán corriendo con soporte parcial, pero se recomienda cambiar a soporte completo.
MySQL si soporta UTF-8 completamente. Requiere que se configuren ciertos ajustes. A partir de Moodle 3.3 el valor por defecto será usar  [[UTF-8]] completo para [[MySQL]] y [[MariaDB]]. Las Bases de datos existentes seguirán corriendo con soporte parcial, pero se recomienda cambiar a soporte completo.


Moodle viene con un ''script' de Interfaz por Línea de Comando (CLI) para convertir a UTF-8 completo para MySQL (y MariaDB). Antes de Moodle 3.3 esta herramienta de conversión solamentecambiaría la [https://en.wikipedia.org/wiki/Collation colación (''collation'')] hacia alguna variante de 'utf8_bin'. La [https://en.wikipedia.org/wiki/Collation colación] recomendada era 'utf8_unicode_ci'. Actualmente recomendamos 'utf8mb4_unicode_ci'. 'utf8mb4_unicode_ci' soporta caracteres de 4 bytes (utf8_unicode_ci solamente soporta caracteres de 3 bytes) por lo que los caracteres de cuatro bytes como los caracteres asiáticos y los [https://es.wikipedia.org/wiki/Emoji emojis] ahora deberían de estar completamente soportados.
Moodle viene con un ''script'' de Interfaz por Línea de Comando (CLI) para convertir a UTF-8 completo para MySQL (y MariaDB). Antes de Moodle 3.3 esta herramienta de conversión solamentecambiaría la [https://en.wikipedia.org/wiki/Collation colación (''collation'')] hacia alguna variante de 'utf8_bin'. La [https://en.wikipedia.org/wiki/Collation colación] recomendada era 'utf8_unicode_ci'. Actualmente recomendamos 'utf8mb4_unicode_ci'. 'utf8mb4_unicode_ci' soporta caracteres de 4 bytes (utf8_unicode_ci solamente soporta caracteres de 3 bytes) por lo que los caracteres de cuatro bytes como los caracteres asiáticos y los [https://es.wikipedia.org/wiki/Emoji emojis] ahora deberían de estar completamente soportados.


Este ''script'' intentará cambiar  las configuraciones de la tabla por defecto, la [https://en.wikipedia.org/wiki/Collation colación] de la Base de Datos y el conjunto de caracteres.
Este ''script'' intentará cambiar  las configuraciones de la tabla por defecto, la [https://en.wikipedia.org/wiki/Collation colación] de la Base de Datos y el conjunto de caracteres.

Revisión del 16:16 10 mar 2017

UTF-8

UTF-8 es una codificación de caracteres que usa la mayoría de los sitios web. Codifica cada uno de los 1,112,064 puntos de código válidos. Para almacenar toda esta información se necesitan cuatro bytes. Los valores más populares están en la región de tres bytes. Por defecto, MySQL usa solamente una codificación de tres bytes por lo que los valores en el rango de cuatro bytes no pueden almacenarse. Cualquier registro que contenga un caracter de cuatro bytes no se guardará.

Nota: Urgente de Traducir. ¡ Anímese a traducir esta muy importante página !.     ( y otras páginas muy importantes que urge traducir)

MySQL si soporta UTF-8 completamente. Requiere que se configuren ciertos ajustes. A partir de Moodle 3.3 el valor por defecto será usar UTF-8 completo para MySQL y MariaDB. Las Bases de datos existentes seguirán corriendo con soporte parcial, pero se recomienda cambiar a soporte completo.

Moodle viene con un script de Interfaz por Línea de Comando (CLI) para convertir a UTF-8 completo para MySQL (y MariaDB). Antes de Moodle 3.3 esta herramienta de conversión solamentecambiaría la colación (collation) hacia alguna variante de 'utf8_bin'. La colación recomendada era 'utf8_unicode_ci'. Actualmente recomendamos 'utf8mb4_unicode_ci'. 'utf8mb4_unicode_ci' soporta caracteres de 4 bytes (utf8_unicode_ci solamente soporta caracteres de 3 bytes) por lo que los caracteres de cuatro bytes como los caracteres asiáticos y los emojis ahora deberían de estar completamente soportados.

Este script intentará cambiar las configuraciones de la tabla por defecto, la colación de la Base de Datos y el conjunto de caracteres.

En resumen:

  • Las instalaciones nuevas de Moodle 3.1.5 y a partir de 3.2.2 en adelante usarán utf8mb4 por defecto.
  • Los sitios que se actualicen a Moodle 3.1.5 o 3.2.2 pueden usar el script para actualizar a utf8mb4. En Moodle 3.3 se mostrará una advertencia de que la Base de datoss no está usando soporte UTF-8 completo y sugerir moverse a utf8mb4, pero Usted podría elegir seguir usando utf8.

Formato del archivo

To allow for large indexes on columns that are a varchar, a combination of settings needs to be set. The file format for the system needs to be using "Barracuda". This allows for the row format to be set to "Compressed" or "Dynamic". To enable this setting see the upgrade steps listed below.

Archivo por tabla

To enable this setting see the upgrade steps listed below.

Large prefix

This in conjunction with the row format being either "Compressed" or "Dynamic" allows for large varchar indexes above 191 characters. To enable this setting see the upgrade steps listed below.

Pasos para actualizar

Most important: Please backup your database before making any changes or running the CLI script.

  • Change configuration settings for MySQL (exactly the same for MariaDB). This step is optional. You can run the script and it will try and make these changes itself. If errors occur then try manually changing these settings as listed below.
    • On Linux based systems you will want to alter my.cnf. This may be located in '/etc/mysql/'.
    • Make the following alterations to my.cnf:

[client] default-character-set = utf8mb4

[mysqld] innodb_file_format = Barracuda innodb_file_per_table = 1 innodb_large_prefix

character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci

[mysql] default-character-set = utf8mb4

  • Restart your mysql server.
  • Run the CLI script to convert to the new character set and collation (requires Moodle 3.1.5, 3.2.2 or newer): php admin/cli/mysql_collation.php --collation=utf8mb4_unicode_ci

The upgrade is now complete.