SSH+Easyui应用部署至新浪服务器数据库连接及问题

来源:互联网 发布:linux中sync 编辑:程序博客网 时间:2024/04/29 01:58

一、新建应用,开启SAE Mysql服务

在添加应用之后需开启当前应用的mysql服务,这里开的mysql服务为“共享型”MYIAM数据库,企业版才能开启Inbon型数据库,接下来“操作MYSQL”对数据库初始化

二、数据库数据连接池配置

<bean id="dataSource"  class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">        <property name="driverClass" value="com.mysql.jdbc.Driver" />        <property name="jdbcUrl">            <value><![CDATA[jdbc:mysql://w.rdc.sae.sina.com.cn:3307/应用名称?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=true]]></value>        </property>        <property name="user"               value="Access Key" />        <property name="password"           value="Secret Key" />        <property name="maxPoolSize"        value="12" />        <property name="minPoolSize"        value="0" />        <property name="maxStatements"      value="100" />        <property name="initialPoolSize"    value="3" />        <property name="maxIdleTime"        value="10"/>        <property name="idleConnectionTestPeriod"   value="10" />        <property name="testConnectionOnCheckin"    value="true" />        <property name="testConnectionOnCheckout"   value="false" />        <property name="preferredTestQuery"         value="SELECT 1 FROM DUAL" />    </bean>

应用名称为当前应用名称即建应用时的名称;

Access Key:键值

Secret Key:密码

这两个值在创建应用时新浪云计算自动生成,在总览页面可以看到。

Hibernate配置文件:

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property><mapping resource="x/x/x/User.hbm.xml" /><mapping resource="x/x/x/Syslog.hbm.xml" /></session-factory></hibernate-configuration>

三、将代码打包成.war文件上传至服务器

新建一个代码版本,将打包生成的.war文件上传至新浪服务器


遇到的问题:

将代码上传至服务器之后,user数据表能正常访问,但syslog表始终访问失败,但在本地是能够正常运行。查看JVM日志报以下错误信息:

- [22/Oct/2015:17:03:49 +0800] JAVA_Error: CREATE command denied to user 'yy52l1njm1'@'10.67.15.82' for table 'syslog' yq34.javaruntime 

- [22/Oct/2015:17:37:57 +0800] JAVA_Error: Unsuccessful: create table weather.syslog (id integer not null auto_increment, log varchar(255), msg varchar(255), status varchar(255) comment '日志状态 成功 错误', createdate datetime not null, primary key (id)) yq33.javaruntime 

创建表和查询时出错,就是syslog数据不能访问,user表可以。问题找了好久发现,在syslog的hibernate映射文件中多了一个catelog字段:

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping>    <class name="x.x.x.model.Syslog" table="syslog" catalog="weather">        <id name="id" type="java.lang.Integer">            <column name="id" />            <generator class="native"></generator>        </id>        <property name="log" type="java.lang.String">            <column name="log" />        </property>        <property name="msg" type="java.lang.String">            <column name="msg" />        </property>        <property name="status" type="java.lang.String">            <column name="status">            </column>        </property>        <property name="createdate" type="java.sql.Timestamp">            <column name="createdate" length="0" not-null="true" />        </property>    </class></hibernate-mapping>
该文件使用myeclipse逆向生成,catalog是由一个数据库实例的元数据组成的,包括基本表,同义词,索引,用户等等,简单的说就是数据库名称。问题就出在这里,在本地的数据库为wather,而由于代码上传至了新浪的云服务器,而这里的数据库名称为app_weather,所以会出现以上错误。将catalog删除或将值改为服务器上数据库的名称,问题解决。




0 0