¿Los nombres de tabla en MySQL distinguen entre mayúsculas y minúsculas?
¿ Los nombres de tabla en MySQL distinguen entre mayúsculas y minúsculas?
En mi máquina de desarrollo de Windows el código que tengo es capaz de consultar mis tablas que parecen estar todas en minúsculas. Cuando implemente en el servidor de prueba en nuestro centro de datos, los nombres de las tablas parecen comenzar con una letra mayúscula.
Los servidores que usamos están todos en Ubuntu.
5 answers
En General:
Los nombres de bases de datos y tablas no distinguen entre mayúsculas y minúsculas en Windows, y distinguen entre mayúsculas y minúsculas en la mayoría de las variedades de Unix.
En MySQL, las bases de datos corresponden a directorios dentro de los datos directorio. Cada tabla dentro de una base de datos corresponde al menos a una archivo dentro del directorio de la base de datos. En consecuencia, la sensibilidad de las mayúsculas y minúsculas el sistema operativo subyacente juega un papel en la sensibilidad de mayúsculas y minúsculas de nombres de bases de datos y tablas.
Uno puede configurar cómo se almacenan los nombres de las tablas en el disco utilizando la variable de sistema lower_case_table_names
. (in my.cnf configuración bajo [mysqld])
Lea la sección: 10.2.2 Identificador de mayúsculas y minúsculas para obtener más información.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-24 06:18:32
Los nombres de bases de datos y tablas no distinguen entre mayúsculas y minúsculas en Windows, y distinguen entre mayúsculas y minúsculas en la mayoría de las variedades de Unix o Linux.
Para resolver el problema, establezca el valor lower_case_table_names en 1
Lower_case_table_names = 1
Esto hará que todas tus tablas estén en minúsculas, sin importar cómo las escribas
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-26 05:51:02
Los nombres de tabla en MySQL son entradas del sistema de archivos, por lo que no distinguen entre mayúsculas y minúsculas si el sistema de archivos subyacente lo es.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-01 04:53:52
Depende de lower_case_table_names
variable del sistema:
show variables where Variable_name='lower_case_table_names'
Hay tres valores posibles para esto:
-
0
- lettercase especificado en elCREATE TABLE
oCREATE DATABASE
instrucción. Las comparaciones de nombres distinguen entre mayúsculas y minúsculas. -
1
- Los nombres de las tablas se almacenan en minúsculas en el disco y las comparaciones de nombres no distinguen entre mayúsculas y minúsculas. -
2
- lettercase especificado en la instrucciónCREATE TABLE
oCREATE DATABASE
, pero MySQL los convierte a minúsculas en la búsqueda. Las comparaciones de nombres no distinguen entre mayúsculas y minúsculas.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-26 04:24:49
Localizar archivo en
/etc/mysql/my.cnf
-
Edite el archivo añadiendo las siguientes líneas:
[mysqld]
lower_case_table_names=1
sudo /etc/init.d/mysql restart
Ejecutar
mysqladmin -u root -p variables | grep table
para comprobar quelower_case_table_names
es1
ahora
Es posible que tenga que volver a crear estas tablas para que funcione
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-20 10:25:24