mysql -uXXXX -pXXXX -e "show variables like 'char%';" -e "show variables like 'collation%';"
Salida de un servidor MySQL con codificación UTF-8.
+--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | utf8 | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ +----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_general_ci | | collation_database | utf8_unicode_ci | | collation_server | utf8_unicode_ci | +----------------------+-----------------+
A continuación se listan las variables que definen la codificación del servidor MySQL en el fichero /etc/my.cnf.
[mysqld] collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8 character-set-filesystem=UTF8 [client] default-character-set=UTF8 [mysqldump] default-character-set=UTF8
Se propone a continuación una lista de comandos para encontrar información sobre la codificación de bases de datos, tablas y columnas en MySQL. Como se verá, hay varias formas de obtener la misma información.
Listar todos los conjuntos de caracteres disponibles en el servidor MySQL instalado. (Listado completo)
SHOW CHARACTER SET;
Listar las colaciones de los conjuntos de caracteres MySQL.
SHOW COLLATION; # Si queremos el listado de colaciones para un juego de caracteres determinado. SHOW COLLATION LIKE 'UTF8%';
Muestra el juego de caracteres y colación de todas las bases de datos MySQL.
SELECT SCHEMA_NAME,default_character_set_name,DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA;
Muestra la colación de todas las tablas de una determinada base de datos en MySQL.
SHOW TABLE STATUS FROM XXXX
Muestra el juego de caracteres y la colación de todas las tablas de una determinada base de datos en MySQL.
SELECT TABLE_NAME,CHARACTER_SET_NAME,COLLATION_NAME FROM information_schema.`TABLES` T, information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA WHERE CCSA.collation_name = T.table_collation AND T.table_schema = "XXXX";
Muestra la colación de cada campo una tabla en concreto en MySQL.
SHOW CREATE TABLE XXXX
Muestra el juego de caracteres y la colación de todos los campos una tabla en concreto en MySQL.
SELECT COLUMN_NAME,CHARACTER_SET_NAME,COLLATION_NAME FROM information_schema.`COLUMNS` C WHERE table_schema = "XXXX" AND table_name = "XXXX";
Cifra un “TEXTO” mediante la clave “PASSWORD”.
INSERT INTO tabla VALUES(AES_ENCRYPT('TEXTO', 'PASSWORD'));
Descifra un “TEXTO” de la “COLUMNA” mediante la clave “PASSWORD”.
SELECT AES_DECRYPT(COLUMNA, 'PASSWORD') FROM tabla;
Guardar y usar la password de cifrado en una variable.
SELECT @variable:='password'; INSERT INTO tabla VALUES (AES_ENCRYPT('TEXTO',@variable));