La Red de Conocimientos Pedagógicos - Conocimientos históricos - Por qué el carácter predeterminado de la base de datos de prueba de mysql es latin1 en lugar de utf8

Por qué el carácter predeterminado de la base de datos de prueba de mysql es latin1 en lugar de utf8

Problemas con el juego de caracteres MYSQL

El soporte del juego de caracteres de MySQL (Character Set Support) tiene dos aspectos:

Juego de caracteres (Character set) y método de clasificación (Collation) .

El soporte para juegos de caracteres se refina a cuatro niveles:

Servidor, base de datos, tabla y conexión.

1. Juego de caracteres predeterminado de MySQL

La especificación de juegos de caracteres de MySQL se puede refinar para determinar qué juego de caracteres se debe utilizar para una base de datos, una tabla y una columna.

Sin embargo, los programas tradicionales no utilizan configuraciones tan complejas al crear bases de datos y tablas de datos. Entonces, ¿de dónde viene la configuración predeterminada? (1) Al compilar MySQL, se especifica un juego de caracteres predeterminado, que es latin1;

(2) Al instalar MySQL, puede especificar un juego de caracteres predeterminado en el archivo de configuración (my.ini) Juego de caracteres , si no se especifica, este valor se hereda del especificado en el momento de la compilación;

(3) Al iniciar mysqld, puede especificar un juego de caracteres predeterminado en los parámetros de la línea de comando. Si no se especifica, este valor. Heredado de la configuración en el archivo de configuración, Character_set_server se establece en este juego de caracteres predeterminado;

(4) Al crear una nueva base de datos, a menos que se especifique explícitamente, falta el juego de caracteres de esta base de datos. La provincia está configurada. to Character_set_server

(5) Cuando se selecciona una base de datos, Character_set_database se establece en el conjunto de caracteres predeterminado de la base de datos

(6) En esta base de datos Al crear una tabla, el el juego de caracteres predeterminado de la tabla se establece en Character_set_database, que es el juego de caracteres predeterminado de la base de datos;

(7) Al configurar una columna en la tabla, a menos que se especifique explícitamente, de lo contrario, el juego de caracteres predeterminado de esta column es el conjunto de caracteres predeterminado de la tabla;

Para resumir simplemente, si no se modifica nada, todos los campos de todas las tablas en todas las bases de datos se almacenarán en latin1. elija compatibilidad con varios idiomas, es decir, el programa de instalación establecerá automáticamente default_character_set en UTF-8 en el archivo de configuración, lo que garantiza que, de forma predeterminada, todas las columnas de todas las tablas en todas las bases de datos se almacenen en UTF-8.

2. Ver el juego de caracteres predeterminado (de forma predeterminada, el juego de caracteres de mysql es latin1 (ISO_8859_1)

Por lo general, puede ver el juego de caracteres del sistema y la configuración de clasificación a través de lo siguiente Dos comandos:

mysql> MOSTRAR VARIABLES COMO 'carácter%';