说来惭愧,JForum我们已经当做实验对象很多年了,但是我一直没有自己部署过,都是师弟师妹完成的。今天由于实验需要,我自己部署了一下其最新稳定版(2.1.9),果然发现了一些小问题,看到有其他朋友也遇到过,就简单记录一下:
主要问题是出在连接数据库和创建表阶段,当我们配置好MySQL的各种参数后,创建表的时候会报错:
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
Query being executed when exception was thrown:
CREATE TABLE jforum_banlist ( banlist_id INT NOT NULL auto_increment, user_id INT, banlist_ip varchar(15), banlist_email varchar(255), PRIMARY KEY (banlist_id), INDEX idx_user (user_id), INDEX (banlist_ip), INDEX (banlist_email)) TYPE=InnoDB
CREATE TABLE jforum_banlist ( banlist_id INT NOT NULL auto_increment, user_id INT, banlist_ip varchar(15), banlist_email varchar(255), PRIMARY KEY (banlist_id), INDEX idx_user (user_id), INDEX (banlist_ip), INDEX (banlist_email)) TYPE=InnoDB
简单查了一下,这主要是由于建表的SQL语句和MySQL的版本不一致导致的。简单来说,在MYSQL5.5及以后版本中type=InnoDB需要由ENGINE=InnoDB代替。那么解决方法也很简单,我们在“%TOMCAT安装目录%\webapps\jforum\WEB-INF\config\database\mysql”中可以看到创建表的SQL文件:mysql_db_struct.sql,我们用任意一种文本编辑工具打开,将其中的“TYPE=InnoDB”替换为“ENGINE=InnoDB”,然后再执行上面的建表语句,就可以正确执行了。
是不是很简单?
另外,看到有些朋友说,不知道怎么把已经部署在Tomcat上的JForum导入MyEclipse,其实套路都是固定的,感兴趣的朋友可以看看我这篇日志:将已部署的JPetStore导入MyEclipse 唯一需要注意的是,“Add External JARs”的时候,需要JForum的源码包,其中的lib在类似于“rafaelsteil-jforum2-190d28b\WEB-INF\lib”这样的目录下。按照我日志里面的做做,基本就可以解决导入MyEclipse的问题了。希望能对大家有点帮助。