sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo cambiar los nombres de las tablas MySQL en el servidor Linux para que no distingan entre mayúsculas y minúsculas?

La distinción entre mayúsculas y minúsculas de MySQL es manejada por defecto por el sistema de archivos, razón por la cual encontró esta diferencia:

9.2.2. Sensibilidad a mayúsculas y minúsculas del identificador

En MySQL, las bases de datos corresponden a directorios dentro del directorio de datos. Cada tabla dentro de una base de datos corresponde al menos a un archivo dentro del directorio de la base de datos (y posiblemente más, según el motor de almacenamiento). En consecuencia, la distinción entre mayúsculas y minúsculas del sistema operativo subyacente juega un papel en la distinción entre mayúsculas y minúsculas de los nombres de bases de datos y tablas. Esto significa que los nombres de las bases de datos y las tablas no distinguen entre mayúsculas y minúsculas en Windows y sí en la mayoría de las variedades de Unix. Una excepción notable es Mac OS X, que está basado en Unix pero utiliza un tipo de sistema de archivos predeterminado (HFS+) que no distingue entre mayúsculas y minúsculas. Sin embargo, Mac OS X también admite volúmenes UFS, que distinguen entre mayúsculas y minúsculas, al igual que en cualquier Unix. Consulte la Sección 1.8.4, “Extensiones de MySQL para SQL estándar”.

Afortunadamente, la siguiente oración podría ayudarte:

lower_case_table_names La variable del sistema también afecta la forma en que el servidor maneja la distinción entre mayúsculas y minúsculas del identificador, como se describe más adelante en esta sección.

Los lower_case_table_names propaganda:

Si se establece en 0, los nombres de las tablas se almacenan como se especifica y las comparaciones distinguen entre mayúsculas y minúsculas. Si se establece en 1, los nombres de las tablas se almacenan en minúsculas en el disco y las comparaciones no distinguen entre mayúsculas y minúsculas. Si se establece en 2, los nombres de las tablas se almacenan tal como se dan, pero se comparan en minúsculas. Esta opción también se aplica a nombres de bases de datos y alias de tablas. Para obtener información adicional, consulte la Sección 9.2.2, "Sensibilidad de mayúsculas y minúsculas del identificador".

No debe establecer esta variable en 0 si está ejecutando MySQL en un sistema que tiene nombres de archivo que no distinguen entre mayúsculas y minúsculas (como Windows o Mac OS X). Si establece esta variable en 0 en un sistema de este tipo y accede a los nombres de tabla de MyISAM usando diferentes mayúsculas y minúsculas, se pueden producir daños en el índice. En Windows, el valor predeterminado es 1. En Mac OS X, el valor predeterminado es 2.

Entonces parece que deberías configurar lower_case_table_names a 1 en el archivo de configuración de MySQL.