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 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.