Skip to main content

Setup MySQL with Ofbiz

Download ofbiz weekily build and extract it somewhere you want. From your ofbiz directory, edit file entityengine.xml in framework/entity/config
add new datasources below localmysql datasource part
    <datasource name="custommysql"
helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
field-type-name="mysql"
check-on-start="true"
add-missing-on-start="true"
check-pks-on-start="false"
use-foreign-keys="true"
join-style="ansi-no-parenthesis"
alias-view-columns="false"
drop-fk-use-foreign-key-keyword="true"
table-type="InnoDB"
character-set="latin1"
collate="latin1_general_cs">
<read-data reader-name="seed"/>
<read-data reader-name="seed-initial"/>
<read-data reader-name="demo"/>
<read-data reader-name="ext"/>
<inline-jdbc
jdbc-driver="com.mysql.jdbc.Driver"
jdbc-uri="jdbc:mysql://localhost/ofbiz"
jdbc-username="ofbizuser"
jdbc-password="mypass"
isolation-level="ReadCommitted"
pool-minsize="2"
pool-maxsize="250"/>
<!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/MySqlDataSource" isolation-level="Serializable"/> -->
</datasource>
<datasource name="custommysqlolap"
helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
field-type-name="mysql"
check-on-start="true"
add-missing-on-start="true"
check-pks-on-start="false"
use-foreign-keys="true"
join-style="ansi-no-parenthesis"
alias-view-columns="false"
drop-fk-use-foreign-key-keyword="true"
table-type="InnoDB"
character-set="latin1"
collate="latin1_general_cs">
<read-data reader-name="seed"/>
<read-data reader-name="seed-initial"/>
<read-data reader-name="demo"/>
<read-data reader-name="ext"/>
<inline-jdbc
jdbc-driver="com.mysql.jdbc.Driver"
jdbc-uri="jdbc:mysql://localhost/ofbizolap?autoReconnect=true"
jdbc-username="ofbizuser"
jdbc-password="mypass"
isolation-level="ReadCommitted"
pool-minsize="2"
pool-maxsize="250"/>
<!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/DerbyDataSource" isolation-level="ReadCommitted"/> -->
</datasource>

change the "default" delegator make it look like this
<delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clea$
<group-map group-name="org.ofbiz" datasource-name="custommysql"/>
<group-map group-name="org.ofbiz.olap" datasource-name="custommysqlolap"/>
</delegator>


put mysql driver under framework/entity/lib/jdbc
[admin@localhost ofbiz]$ ls framework/entity/lib/jdbc
derby-10.4.1.3.jar mysql-connector-java-5.1.6-bin.jar
[admin@localhost ofbiz]$


prepare database <create database ,grant user>
mysql> create database ofbiz;
Query OK, 1 row affected (0.05 sec)

mysql> create database ofbizolap;
Query OK, 1 row affected (0.05 sec)

mysql> grant all on *.* to 'ofbizuser'@'localhost' identified by 'mypass';
Query OK, 0 rows affected (0.03 sec)

mysql>


now we're ready to run ant to load database into mysql. Let's go.
[admin@localhost ofbiz]$ ./ant run-install
...
[java] 2008-06-19 10:59:06,245 (main) [ ContainerLoader.java:114:INFO ] Shutting down containers

BUILD SUCCESSFUL
Total time: 5 minutes 25 seconds
[admin@localhost ofbiz]$

Comments

Anonymous said…
this is spot on..All the documentation say derby is not efficient, yet they never show how to setup another databse..lol
Anonymous said…
Very good documentation... I modified it a bit for my needs but I agree the ofbiz docs are missing this aspect.
Anonymous said…
I followed exactly the same was as mentioned , but i am getting a lot of MYSQL exceptions and finally unable to see the list of tables installed in my database named 'ofbiz' , so any way out
Anonymous said…
I have used java -jar ofbiz.jar -install command to install ofbiz and after a series of exceptions the control comes out to the command prompt
alam said…
hi why we need ofbizolap? the default ofbiz don't need this..
Anonymous said…
Hi,

I am using mysql as db for my ofbiz . I usually see 100's of established connections (netstat ) between ofbiz and mysql servers eventhough no threads utlizing it. All these connections used to be in sleep state. It frequently get refreshed by ofbiz and again be in sleep state. It never reaches the wait_timeout value set in the DB.

Where should I look at in ofbiz for the properties which control timeout for DB connections.
to use mysql 5.5 you must change the file
framework/entity/src/org/fbiz/entity/jdbc/DatabaseUtil.java and change TYPE to ENGINE since TYPE is removed in mySQL 5.5
Anonymous said…
Andrea Palmatè ..
pls specify the line or describe where to change the TYPE to ENGINE..

Popular posts from this blog

Converting dat to mpeg file, to burn vcd on ubuntu

Creating vcd [from dat file] on WinXP, I use "Nero Burning Rom". It can burn dat file to vcd directly. On ubuntu, AFAIK, No burning cd software to burn dat to vcd. I use k3b but it can't burn dat file. It support only mpeg-1 and mpeg-2 format. Dat file need to convert to mpeg first. Thist post will show how I install and use vcdgear to convert dat file to mpeg file. pnix@pnix-a7n:~/progdl$ wget http://www.vcdgear.com/files/vcdgear176-040415_linux.tar.gz --04:21:14-- http://www.vcdgear.com/files/vcdgear176-040415_linux.tar.gz => `vcdgear176-040415_linux.tar.gz' Resolving www.vcdgear.com... 66.98.192.104 Connecting to www.vcdgear.com|66.98.192.104|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 442,937 (433K) [application/x-tar] 100%[====================================>] 442,937 105.23K/s ETA 00:00 04:21:20 (87.02 KB/s) - `vcdgear176-040415_linux.tar.gz' saved [442937/442937] pnix@pnix-a7n:~/progdl$ tar xzf vcdgear

using Class.getResource() load resource file in Eclipse

There are many ways to load resource file in java app. What sun recommended is using Class.getResource(" resource_name ") or Class.getResourceAsStream(" resource_name ") then you will get URL and InputStream respectively. If resource_name is specified without "/", it will be prepend with Class package. So resource file must be in same place[folder structure] as the Class. What I love to do is call getResource() with "/" and put resource file at the root of package. This way i can have separate resource folder. below is in Eclipse, 1. From Package explorer right click src folder->click import 2. In import dialog, Choose General->File System ->next 3. from directory:->Browse to your resource folder. 4. to folder:-> I add "resource" as a folder name under src folder. then click "Finish". In the code, load resource with this.getClass().getResource("/resource/buttons1.png") or this.getClass().getResourceAs

Fixing sendmail take a long time to start

I notice that my database box[FC6+Oracle10.2] take along time to startup. Sendmail and sm-client very very slow to start[ about 5 minutes ]. There's something wrong in /etc/hosts file. 'newalises' command take long time to update and finish with error below. [root@ora10g ~]# newaliases WARNING: local host name (ora10g) is not qualified; see cf/README: WHO AM I? /etc/aliases: 76 aliases, longest 10 bytes, 765 bytes total [root@ora10g ~]# cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 192.168.1.55 ora10g [root@ora10g ~]# To fix this, custom hostname[ora10g] need to append to localhost line in /etc/hosts. [root@ora10g ~]# cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost ora10g 192.168.1.55 ora10g [root@ora10g ~]# newaliases /etc/alia