bluemix 服务器在 MySQL 中给出 SQLGrammarException

Posted

技术标签:

【中文标题】bluemix 服务器在 MySQL 中给出 SQLGrammarException【英文标题】:bluemix server gives SQLGrammarException in MySQL 【发布时间】:2015-11-25 07:57:17 【问题描述】:

![out put from cf logs app-name --recent ]1我已经在基于后端的应用程序中开发了一个spring/hibernate-mysql。我已经成功地在本地机器上测试了应用程序。但是当我将应用程序上传到 IBM bluemix 时,访问服务时到处都有异常--> Dao 方法。它说 org.hibernate.exception.SQLGrammarException 说明消息,例如“ SELECT command denied to user 'username@75.126.83.16'。有趣的是,当我放置一个没有 Hibernate/spring Dao 的普通 JSP 但使用相同的连接字符串时,它有效.

Here is the spring-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<context:component-scan     base-package="pojos" />
    <bean id="adminService" class="pojos.AdminService">
      <property name="adminDao" ref="adminDao" />
    </bean>
   .. Other Service class  bean's info....
 <bean id="adminDao" class="pojos.AdminDao">
 <property name="sessionFactory" ref="sessionFactory" />
 </bean>
 <bean id="fieldOfficerDao" class="pojos.FieldOfficerDao">
 <property name="sessionFactory" ref="sessionFactory" />
 </bean>
 <bean id="questionMasterDao" class="pojos.QuestionMasterDao">
 <property name="sessionFactory" ref="sessionFactory" />
 </bean>
 .. Other Dao class  bean's info....
    <bean id="sessionFactory"      class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
   <property name="dataSource" ref="dataSource" />
   <property name="mappingResources">
   <list>
   <value>pojos/Admin.hbm.xml </value>
   ... And other hbm files...

 </list>
 </property>
 <property name="hibernateProperties">
 <props>
 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
 <prop key="hibernate.current_session_context_class">thread</prop>
 </props>
 </property>
 </bean>

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://192.155.247.251:3307/<DB-Name>" />
    <property name="username" value="<DB-User-Name>" />
    <property name="password" value="<DB-Password>" />


</bean>

<bean id="dbUtil"
    class="pojos.DbUtil"
    init-method="initialize">
    <property name="dataSource" ref="dataSource" />
</bean>

【问题讨论】:

您是否使用过您的用户名(从凭据中获取)或“用户名”,如图所示? 嗨 data_henrik,是的,我使用了 bluemix phpMyAdmin 服务提供的原始凭证。不是 ..跨度> 您好,您可以调试 Hibernate 发送的查询吗? 您是否在错误消息中看到 ip 地址 75.126.83.16 ?这似乎不是正确的 @v.bontempi 和 whitfiea ,我添加了 >cf logs appname --recent 输出的截图图像 【参考方案1】:

我刚刚从每个 .hbm.xml 文件的类标记中删除了目录属性。该属性是可选的,它包含 mySQL 的模式名称。 以前是

<class name="pojos.Admin" table="admin" catalog="merca">

但现在是

<class name="pojos.Admin" table="admin">

【讨论】:

以上是关于bluemix 服务器在 MySQL 中给出 SQLGrammarException的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Bluemix 中更改同一项目的 War 文件

bluemix 服务单页应用程序

Bluemix Mobile First 容器预览错误

在 bluemix 上使用 python 调用服务

如何在 IBM Bluemix 中查看调试日志

解析服务器迁移到 IBM bluemix