Tonight, a friend of mine deployed SSM project on Centos7.3. As the MySQL database was developed using Windows operating system, the table structure of the database was transformed into SQL files to be executed on the Centos7.3 operating system MySQL during transplantation. Everything is ready for the database service. When Tomcat is started, the database table name reported in the startup log does not exist, which is quite confusing: obviously everything is normal in Windows, but the report does not exist when transplanted to Linux server, and the data file is directly exported from the database.
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table ‘t_starListtitle’ doesn’t exist
Later, I remotely logged in to the server, checked the startup log, and copied the SQL statement with the error to the MySQL server for execution. When I found that the execution would prompt that the table did not exist. After comparison, it is found that the L letter of the table name in the database is case-sensitive. The cause is found after query: The MySQL database in Windows does not distinguish the case of the table name by default. The MySQL database in Linux does not differentiate the case of the table name by default, which causes the report does not exist when the SQL statement is executed. Solution: Add a line lower_case_table_names=1 under [mysqld], and restart the mysql service.