hibernate4.3.8与spring mvc结合遇到的问题
2703 [2015-01-21 16:47:42 ] - [ip=, ref=, ua=, sid=]
WARN o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 1109, SQLState: 42S02
2703 [2015-01-21 16:47:42 ] - [ip=, ref=, ua=, sid=]
ERROR o.h.e.jdbc.spi.SqlExceptionHelper - Unknown table 'referential_constraints' in information_schema
2719 [2015-01-21 16:47:42 ] - [ip=, ref=, ua=, sid=]
ERROR o.h.tool.hbm2ddl.SchemaUpdate - HHH000299: Could not complete schema update
java.lang.NullPointerException: null
hibernate4.3.8与spring 4.1.4.RELEASE结合,数据库是mysql 版本是5.0.45结果报上面的错误。
原因分析一:
开始以为是hibernate的dialect出问题了,MySQL5Dialect MySQLDialect MySQL5InnoDialect都不起作用
原因分析二:
后来上网查询mysql发现是mysql的版本问题,referential_constraints 在5.0.45中没有,因此总是报错,参见以下参考资料
-
The
REFERENTIAL_CONSTRAINTS
table was added in MySQL 5.1.10.
http://dev.mysql.com/doc/refman/5.1/en/referential-constraints-table.html
后将mysql的版本升级到5.6.21,终于不报错了。
通过以下sql命令,查询information_schema中的表,可以发现5.6.21中有referential_constraints表。
- mysql> use information_schema;
- mysql> show tables;
----------------------------------------------------------------------------------------------
mysql一台机器可以安装多个版本,但是端口要不同。如果端口相同,则在服务中,只能起一个mysql服务。
mysql Command Line Client一闪而过解决办法:
1、选择才菜单下;Mysql---》mysql server 5.6-->mysql command line Client ---右击,选择属性
2、在属性下查看目标位置;
"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysql.exe" "--defaults-file=C:\Program Files\MySQL\MySQL Server 5.6\my.ini" "-uroot" "-p"
找到对应的目录下是否有my.ini文件。
3、将安装目录下的my-default.ini重命名为my.ini.
4、再次启动mysql command line Client.
解决办法:
C:\Program Files\MySQL\MySQL Server 5.6中只有my-default.ini,没有my.ini,
因此在控制面板中停止mysql服务,拷贝一份my-default.ini,然后改名my.ini,然后重启mysql服务,
再次打开mysql Command Line Client,就不会一闪而过了。