我在 webapps 文件夹中部署了一个 war 文件,
/srv/apache-tomcat-7.0.53/webapps/
War 名称是InIndia.war
我已经
inindiadb.properties
在类路径中部署了/srv/apache-tomcat-7.0.53/lib
内容
inindiadb.properties
:jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/inindia jdbc.username=root jdbc.password=admin
我已经安装并运行 mysql
netstat -vulntp |grep -i mysql tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 563/mysqld
MySql 数据库有
inindia
数据库并inindia
有 3 个表(place
、、user_roles
)users
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | inindia | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.00 sec) mysql> use inindia; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +-------------------+ | Tables_in_inindia | +-------------------+ | place | | user_roles | | users | +-------------------+ 3 rows in set (0.00 sec)
问题是当我重新启动 tomcat 时,会与 mysql 建立连接,但在 tomcat 日志中显示
catalina.out:
SEVERE: Error listenerStart Apr 18, 2014 11:02:17 AM org.apache.catalina.core.StandardContext startInternal SEVERE: Context [/InIndia] startup failed due to previous errors
本地主机本地主机.2014-04-18.log:
INFO: Initializing Spring root WebApplicationContext Apr 18, 2014 10:50:11 AM org.apache.catalina.core.StandardContext listenerStart SEVERE: Exception sending context initialized event to listener instance of class com.inindia.listener.ApplicationInfoLoaderListener org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [SELECT * FROM PLACE order by placeName]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'inindia.PLACE' doesn't exist
我无法找出错误原因。错误提示inindia.Place
无法找到,但数据库和表都存在。
inindiadb.properties
它连接到文件中提到的 URL
我甚至编写了一个 java 类来连接到 mysql 服务器并将其显示为其中一个表的输出数据。连接和数据提取均成功。
甚至我在 Windows 上的本地 tomcat 上也部署了同样的内容,部署也正确。因此战争似乎没有问题
我是 Linux 新手。请告诉我是否需要在 mysql 服务器中进行任何设置。比如为数据库提供特权或类似的东西
答案1
我认为下面这一行有错误。
org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [SELECT * FROM PLACE order by placeName]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'inindia.PLACE' doesn't exist
您在 inindia 创建了名为 place 的表,但您将其称为 PLACE。
“地方“ 不是 ”地方“。
我建议您修改“地方“ 到 ”地方“。