再Mysql6.0上配置JBPM4.4出現的問題

今天按照湯陽光老師的OA視頻,配置jbpm4.4時,遇到了個奇葩問題。首先說明一下,我的MySQL6.0版本的,執行jbpm.mysql.create.sql時,報如下錯誤:

    You have an error in your SQL syntax; checkthe manual that corresponds to your MySQL server version for the right syntaxto use near 'TYPE=INNODB' at line 6

根據網上的經驗來談,mysql5.5後默認使用InnoDB引擎,所以要修改jbpm.mysql.create.sql文件中所有'TYPE=INNODB'改爲'Engine=INNODB'當然這個問題比較容易解決,談不上奇葩,但是下面的問題,就讓人匪夷所思了。改完之後,然後繼續執行jbpm.mysql.create.sql,報出下面的錯誤:

Specified key was too long; max key length is 767bytes

就是執行創建表JBMP4_EXECUTION(第3張表)時不成功,還有另外一張表JBMP_PROPERTY(第15張表)也是如此錯誤沒有創建成功。其他16張表都成功創建沒問題。如果JBMP4_EXECUTION表創建不好就運行jbpmjava程序,一般會報如下錯誤:

jBPM4.4 no jBPMDB schema: no JBPM4_EXECUTION table.   Run the create.jbpm.schema targetfirst in the install tool

所以呢,jbmp要用到的表必須要創建好才能運行java程序。

首先根據上面的錯誤提示,應該是某個字段太長了,於是我將JBMP4_EXECUTION表中一些字段值由255改爲100,創建成功。後來又排出了一些其他字段的定義,將其中一些字段值修改回255,後來經過反覆試驗,最終定位到JBPM4_EXECUTION表中,ID_ varchar(255) unique,這一行有問題,將其改爲了ID_varchar(100) unique,創建表成功。另外一張表JBMP_PROPERTY(第15張表)將KEY_ varchar(255) not null行改爲KEY_ varchar(100)not null ,然後成功創建。

後來我又單獨地拿jbpm.mysql.create.sql中這JBPM4_EXECUTION(第3張表)和JBMP_PROPERTY(第15張表)在一個新建的數據庫嘗試創建,奇怪的是都創建成功了。然後再執行jbpm.mysql.create.sql中剩下的sql語句都沒出問題。

不知道是不是數據庫版本的原因,因爲我的是MySQL6.0,而湯老師用的是MySQL5.6。也不知道其他人有沒有出現和我一樣的問題,反正我最後解決辦法要麼把JBMP4_EXECUTION(第3張表)表的創建語句中ID_ varchar(255) unique改爲ID_ varchar(100)uniqueJBMP_PROPERTY(第15張表)表的創建語句中KEY_ varchar(255) not null改爲KEY_ varchar(100)not null 。要麼把先執行創建那兩張表,然後再執行jbpm.mysql.create.sql其他的sql語句。

 







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章