cancel
Showing results for 
Search instead for 
Did you mean: 

manual instalation alfresco 4.0e

jjscampos
Champ in-the-making
Champ in-the-making
Hello,

Done manual installation of alfresco on tomcat7 and want to use mysql as database.
fond two alfresco-global.properties: one at [tomcat]/webapps/alfresco/WEB-INF/classes and other at [tomcat]/share/classes witch one change to configure alfresco properly.
Where to change in order to use Mysql?
Why there are two configuration files with same name?

thanks.
8 REPLIES 8

jpotts
World-Class Innovator
World-Class Innovator
You should have a file in $TOMCAT_HOME/shared/classes called alfresco-global.properties.sample. Copy that to $TOMCAT_HOME/shared/classes/alfresco-global.properties then make changes to that file.

To switch to MySQL, assuming you've already created the empty database, you'll want to uncomment:
db.driver=org.gjt.mm.mysql.Driver
db.url=jdbc:mysql://localhost/alfresco?useUnicode=yes&characterEncoding=UTF-8

See: https://wiki.alfresco.com/wiki/Repository_Configuration#alfresco-global.properties_.28V3.2.2B.29

Jeff

jjscampos
Champ in-the-making
Champ in-the-making
thanks Jeff, but still having troubles.

On mysql I did as above:

CREATE USER alfresco@localhost IDENTIFIED BY 'alfresco';
create database alfresco DEFAULT CHARACTER SET utf8;
grant all on alfresco.* to alfresco@localhost identified by 'alfresco' with grant option;
FLUSH PRIVILEGES;

copy mysql-connector-java-5.1.21-bin.jar to $TOMCAT_HOME/lib, chmod 755

Done the configuration suggested by you and some more at $TOMCAT_HOME/shared/classes/alfresco-global.properties, like above:

db.name=alfresco
db.username=alfresco
db.password=alfresco
db.host=localhost

db.port=3306
db.driver=org.gjt.mm.mysql.Driver
db.url=jdbc:mysql://${db.host}:${db.port}/${db.name}
#db.url=jdbc:mysql://localhost/alfresco?useUnicode=yes&characterEncoding=UTF-8

But Alfresco logs still complain about postgresql

2012-08-22 11:54:52,438  WARN  [hibernate.cfg.SettingsFactory] [localhost-startStop-1] Could not obtain connection metadata
org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.postgresql.Driver'
   at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429)
   at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
   at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
   at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
   at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
   at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2073)
   at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1298)
   at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:860)
   at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:779)
   at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
   at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
   at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)
   at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
   at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:963)
   at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1600)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
   at java.util.concurrent.FutureTask.run(FutureTask.java:166)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
   at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver
   at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
   at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
   at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1420)
   … 68 more

What is missing up?
Thanks.

jpotts
World-Class Innovator
World-Class Innovator
Can you check $TOMCAT_HOME/conf/catalina.properties to make sure that this is set:
shared.loader=${catalina.home}/shared/classes,${catalina.home}/shared/lib/*.jar

Jeff

jjscampos
Champ in-the-making
Champ in-the-making
Thanks for your reply, but still no joy with mysql.

shared.loader at $TOMCAT_HOME/conf/catalina.properties was empty, so I did edited as you suggested, and moved mysql-connector-java-5.1.21-bin.jar into ${catalina.home}/shared/lib . Same logs result, sorry.

But if I copy the postgresql-9.0-801.jdbc4.jar present on alfresco-comunity-4.0.e.zip to ${catalina.home}/shared/lib after editing $TOMCAT_HOME/conf/catalina.properties I got this logs insisting  postgresql connection error:

2012-08-22 16:58:20,494  WARN  [hibernate.cfg.SettingsFactory] [localhost-startStop-1] Could not obtain connection metadata
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.)
   at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
   at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
   at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
   at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
   at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
   at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2073)
   at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1298)
   at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:860)
   at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:779)
   at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
   …
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
   at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
   at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)
   …
   at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1600)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
   at java.util.concurrent.FutureTask.run(FutureTask.java:166)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
   at java.lang.Thread.run(Thread.java:722)
Caused by: org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
   at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:136)
   at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
   at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:125)
   at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
   at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:22)
   at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:30)
   at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
   at org.postgresql.Driver.makeConnection(Driver.java:393)
   at org.postgresql.Driver.connect(Driver.java:267)
   at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
   at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
   at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
   at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
   … 68 more
Caused by: java.net.ConnectException: Connection refused
   at java.net.PlainSocketImpl.socketConnect(Native Method)
   at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
   at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
   at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
   at java.net.Socket.connect(Socket.java:579)
   at java.net.Socket.connect(Socket.java:528)
   at java.net.Socket.<init>(Socket.java:425)
   at java.net.Socket.<init>(Socket.java:208)
   at org.postgresql.core.PGStream.<init>(PGStream.java:62)
   at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:76)
   … 80 more

So I think the problem is about the mysql connect or mysql config related. But can't figure out what may be.
thanks once more Jeff.

jpotts
World-Class Innovator
World-Class Innovator
$TOMCAT_HOME/conf/catalina.properties was empty? That doesn't sound good. Although, maybe that's a difference with Tomcat 7 and Tomcat 6 (which is what I'm running).

You know, I notice Tomcat 7 is conspicuously absent from the Supported Platforms page. Any chance you could install on Tomcat 6 instead?

Jeff

jjscampos
Champ in-the-making
Champ in-the-making
Thanks for the quick response Jeff.

Finally I made it shinning Smiley Very Happy …But I still confused, please someone clarify me.

Tested it with Tomcat 6 (apache-tomcat-6.0.35), with exactly same result as mentioned before. So decided start all over again and I performed this steps:
1 - Erased everything (tomcat and alfresco)
2 - Extracted apache-tomcat-7.0.29 to /usr/share/apache-tomcat-7.0.29, consider this as $TOMCAT_HOME.
3 - Started and stoped tomcat, everything worked great so far
4 - Unziped alfresco-4.0.e and copied the full folder alfresco-4-0-e/web-server/shared to $TOMCAT_HOME and alfresco-4-0-e/web-server/webapps/* to $TOMCAT_HOME/webapps
5 - Confirmed that mysql was correctly set up with alfresco db and appropriated grants for alfresco user as mentioned before as well.
6 - Adjusted $TOMCAT_HOME/shared/classes/alfresco-global.properties as mentioned before to consider mysql
7 - Copied mysql-connector to $TOMCAT_HOME/lib
8 - Started tomcat, same logs complaining about postgresql… (WTF, but I want to use the mysql)
9 - Done some search, where would be this insisting postgresql default configuration and found it at this file ($TOMCAT_HOME/webapps/alfresco/WEB-INF/classes/alfresco/module/test/alfresco-global.properties):

# DB Override settings for PostGreSQL
db.driver=org.postgresql.Driver
db.url=jdbc:postgresql:${db.name}
db.username=alfresco
db.password=alfresco
# (or give the alfresco user db create permissions)
10 - Commented everything out at the mentioned properties files
11 - Restarted tomcat and the mysql connection worked, tables created, database script executed, db patches applied, ok.
12 - if uncomment back the lines as it were at point 9, alfresco start complaining  about postgresql once again.

Probably I'm doing something wrong here, or someone please clarify me, shouldn't any file within $TOMCAT_HOME/webapps/alfresco/ be ready-only. Whenever need override any propertie it shouldn't be done at $TOMCAT_HOME/shared/classes/alfresco-global.properties?
Other example is ImageMagick root, it only take effect when I change the proper "img.root" porpertie at $TOMCAT_HOME/webapps/alfresco/WEB-INF/classes/alfresco/repository.properties

There's certanely something that I'm doing wrong where or something I did not understand quite well yet about alfresco config. Or somehow $TOMCAT_HOME/shared/classes/alfresco-global.properties is not being considered on my system.
Please someone reply to this with what experiences you may have on this.


considerations:
centOS 6.3, 64bit distribution
java-1.7.0-openjdk-1.7.0.5.x86_64
mysql-5.1.61-4.el6.x86_64
mysql-connector-java-5.1.13-bin.jar
apache-tomcat-7.0.29
alfresco-4.0.e

t_sato
Champ in-the-making
Champ in-the-making
Hi,

I have struggled with this, too.

Or somehow $TOMCAT_HOME/shared/classes/alfresco-global.properties is not being considered on my system.

Are you sure you configured your Tomcat properly as Jeff suggested? I don't see the step.

Take a look at Tomcat's classloader overview, Tomcat 5 and Tomcat 6(7).

As you can see, shared loader is not enabled by default since Tomcat 6. So whatever you write down to your alfresco-global.properties, it won't be read.

The Jeff's suggestion is well documented in wiki.

Then, img.root and swf.exe should work fine!

jjscampos
Champ in-the-making
Champ in-the-making
You both are 100% correct.

I missed shared loader conf as Jeff suggested.

Working perfectly now, thanks to you both.


In meanwhile I've some other questions, but will start an fresh post thread.