Por defecto, MySQL utiliza el juego de caracteres ISO-8859-1 (Latin1), con ordenación de acuerdo a las reglas Suecas/Finlandesas. Estos valores por defecto son aplicables a los Estados Unidos y la mayoría de Europa occidental.
Todas las distribuciones binarias de MySQL se compilan con la
opción --with-extra-charsets=complex. Esto
añade código a todos los programas estándard que les permite
manejar el juego de caracteres latin1 y
todos los juegos de caracteres multi-byte desde el binario.
Otros juegos de caracteres se cargan desde un archivo de
definición, cuando sea necesario.
El juego de caracteres determina qué caracteres se permiten
en los nombres. También determina como las cadenas de
caracteres se ordenan mediante las cláusulas ORDER
BY y GROUP BY de la sentencia
SELECT.
Puede cambiar el juego de caracteres con la opción
--default-character-set cuando inicie el
servidor. Los juegos de caracteres disponibles dependen de las
opciones
--with-charset=
y
charset--with-extra-charsets= del comando
configure, y los archivos de configuración
de juegos de caracteres enumerados en
list-of-charsets
| complex | all | noneSHAREDIR/charsets/Index. Consulte
Sección 2.8.2, “Opciones típicas de configure”.
En MySQL 5.0, también puede cambiar la colación del juego de
caracteres con la opción
--default-collation cuando inicie el
servidor. La colación debe ser alguna que sea válida para el
juego de caracteres por defecto. (Utilice la sentencia
SHOW COLLATION para determinar qué
colaciones están disponibles para cada juego de caracteres.)
Consulte Sección 2.8.2, “Opciones típicas de configure”.
Si usted cambia el juego de caracteres cuando ejecuta MySQL,
esto también podría cambiar la ordenación. En consecuencia,
debe ejecutar myisamchk -r -q
--set-character-set=charset
en todas sus tablas, o sus índices podrían no estar ordenados
correctamente.
Cuando un cliente se conecta a un servidor MySQL, el servidor indica al cliente cúal es el juego de caracteres por defecto del servidor. El cliente se adapta entonces para utilizar este juego de caracteres en su conexión.
Debería utilizar mysql_real_escape_string()
cuando escape cadenas de caracteres para una sentencia SQL.
mysql_real_escape_string() es idéntica a la
antigua función mysql_escape_string(),
excepto que toma el identificador de conexión
MYSQL como primer parámetro para que pueda
tenerse en cuenta el juego de caracteres apropiado cuando se
escapan caracteres.
Si el cliente ha sido compilado con rutas diferentes a las del servidor que está instalado, y el usuario que configuró MySQL no incluyó todos los juegos de caracteres en el binario de MySQL, debe indicarle al cliente dónde puede encontrar los juegos de caracteres adicionales que necesita si el servidor ejecuta un juego de caracteres diferente.
Puede hacerlo especificando la opción
--character-sets-dir para indicar la ruta al
directorio donde se encuentra los juegos de caracteres
dinámicos de MySQL. Por ejemplo, podría poner lo siguiente en
un archivo de opciones:
[client] character-sets-dir=/usr/local/mysql/share/mysql/charsets
Puede forzar a que el cliente utilice un juego de caracteres específico de la siguiente manera:
[client]
default-character-set=charset
De todas formas, normalmente, esto no es necesario.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.
