Linux does not allow MySQL to distinguish the case sensitivity of table names.
Problem description:
Today, a project database is transplanted to the liunix server, and the table cannot be found. The query database does exist. After analysis and comparison, it is found that the table name is case-insensitive.
Problem Analysis:
The table names of MySQL databases are case sensitive in Linux. Programs Developed in Windows are transplanted to Linux, if the SQL statements in the program do not strictly follow the case when accessing the database table, the table cannot be found.
Solution:
Modify the MySQL configuration file my. cnf. In the [mysqld] section, add the following configuration option lower_case_table_names = 1 and restart the MySQL service.
Suggestion:
However, the root solution is to follow the good practices of cross-platform development. For example, database names, table names, and field names in SQL statements must be case sensitive, it is exactly the same as the database name, table name, and field name in the database. This will enhance the portability of the program. Avoid modifying the configurations of the target environment. If other applications are deployed in the target environment, other applications may not work.
Note:
Icon
In Linux, the database name, table name, column name, And alias are case-sensitive:
1. The database name and table name are case sensitive;
2. Table aliases are case sensitive;
3. The column name and column alias are case-insensitive in all cases;
4. Variable names are case sensitive;