今天将一个以前的项目数据库迁移到新的数据库上,项目使用SSH。
导入数据库后更改数据库连接信息,并且将Hibernte中的hibernate.hbm2ddl.auto设置为update,让Hibernate帮助自动更新表,但不成功,报了如下信息:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 1
为什么之前没有这样的问题呢?后来,想了想,会不会与我的开发环境有关呢。之前使用的MySql版本是5.0,现在换成了5.5,会不会与这有关呢。
后来,网上查找一番,发现是因为type=InnoDB在5.0以前是可以使用的,但5.1之后就不行了。如果我们把type=InnoDB改为engine=InnoDB就不会有这个问题。但是,我想使用Hibernate,自动帮我建表,怎么办呢。这就与我们指定的数据库方言(dialect)有关了。
之前我的配置是:
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
现在改为:
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
好了,这样问题就解决了。总结下:
Using 'MySQL5InnoDBDialect' works with 5.1 and 5.5.
分享到:
相关推荐
本文主要介绍解决Hibernate4在MySQL5.1自动创建表出错的方法,简单实用,需要的朋友可以参考下。
inndb存储技术教程,详细说明了mysql中inndb存储技术
MySQL技术内存-InnoDB存储引擎,
mysql备份工具 支持inndb备份 支持在线热备份 备份时不影响数据读写 能获取binlog和pos位置 方便做主从同步
今天小编就为大家分享一篇关于一个案例彻底弄懂如何正确使用mysql inndb联合索引,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
MySQL Innodb锁解决并发问题.pdf