Hi Karl, I've found why it didn't work. I thought that these are enough:
<property name="org.apache.manifoldcf.mysql.hostname" value="custom_hostname"/> <property name="org.apache.manifoldcf.dbsuperusername" value="root"/> <property name="org.apache.manifoldcf.dbsuperuserpassword" value="mypass"/> However, these key/value pairs are read by ManifoldCF too: <property name="org.apache.manifoldcf.database.password" value="mypass"/> <property name="org.apache.manifoldcf.database.username" value="root"/> <property name="org.apache.manifoldcf.mysql.server" value="custom_hostname"/> <property name="org.apache.manifoldcf.mysql.client" value="custom_hostname"/> So, I've added that properties to make it work. Shouldn't hostname, dbsuperusername and dbsuperuserpassword be enough? Kind Regards, Furkan KAMACI On Sat, Nov 24, 2018 at 5:40 PM Karl Wright <daddy...@gmail.com> wrote: > Hi Furkan, > > Why do you conclude that MCF is not using the parameters in parameters.xml? > > It's possible that it cannot *find* parameters.xml. Have you verified > that? > > Karl > > > On Sat, Nov 24, 2018 at 8:58 AM Furkan KAMACI <furkankam...@gmail.com> > wrote: > >> Hi Karl, >> >> When I try to connect a dockerized MySQL from host machine I use ip >> address. Symbolic names can be used inter-docker connections with linked >> containers. >> >> I've tried all combinations and none of them worked. I couldn't figure >> out the reason why ManifoldCF does not use parameters defined at >> properties.xml and why it tries to connect via default username >> (manifoldcf) and password (local_pg_passwd). >> >> Kind Regards, >> Furkan KAMACI >> >> On Sat, Nov 24, 2018 at 3:56 PM Karl Wright <daddy...@gmail.com> wrote: >> >>> Hi Furkan, >>> >>> This gives me pause: >>> >>> <property name="org.apache.manifoldcf.mysql.hostname" >>> value="172.17.0.4"/> >>> >>> A virtualized environment may require use of symbolic names rather than >>> hard IP addresses. >>> >>> Karl >>> >>> >>> On Sat, Nov 24, 2018 at 7:53 AM Furkan KAMACI <furkankam...@gmail.com> >>> wrote: >>> >>>> Hi Karl, >>>> >>>> Same config with same MySQL version in non-docker environment works. I >>>> can successfully connect to mysql docker via: >>>> >>>> mysql -h 172.17.0.2 -u root -p >>>> >>>> Here is my config for MySQL: >>>> >>>> <property name="org.apache.manifoldcf.database.name" value="amarok"/> >>>> <property name="org.apache.manifoldcf.connectors" value="DEBUG"/> >>>> <property name="org.apache.manifoldcf.databaseimplementationclass" >>>> value="org.apache.manifoldcf.core.database.DBInterfaceMySQL"/> >>>> <property name="org.apache.manifoldcf.mysql.hostname" >>>> value="172.17.0.4"/> >>>> <property name="org.apache.manifoldcf.mysql.port" value="3306"/> >>>> <property name="org.apache.manifoldcf.dbsuperusername" value="root"/> >>>> <property name="org.apache.manifoldcf.dbsuperuserpassword" >>>> value="mypass"/> >>>> >>>> I've put some logging into ConnectionFactory and this is what I get: >>>> >>>> ------ >>>> Database: mysql >>>> jdbcDriver: com.mysql.jdbc.Driver >>>> jdbcUrl: >>>> jdbc:mysql://localhost/mysql?useUnicode=true&characterEncoding=utf8 >>>> userName: root >>>> password: mypass >>>> ------ >>>> ------ >>>> Database: amarok >>>> jdbcDriver: com.mysql.jdbc.Driver >>>> jdbcUrl: >>>> jdbc:mysql://localhost/amarok?useUnicode=true&characterEncoding=utf8 >>>> userName: manifoldcf >>>> password: local_pg_passwd >>>> ------ >>>> >>>> So, it doesn't try to connect a host rather than localhost without >>>> respecting properties.xml? >>>> >>>> Kind Regards, >>>> Furkan KAMACI >>>> >>>> On Sat, Nov 24, 2018 at 3:42 PM Karl Wright <daddy...@gmail.com> wrote: >>>> >>>>> Hi Furkan, >>>>> >>>>> The only thing that comes to mind is that maybe your MySQL is running >>>>> on a different port than you expect, or that the MySQL driver you are >>>>> using >>>>> is not compatible with your setup. Basically it is failing to create a >>>>> connection between the driver and the database. >>>>> >>>>> Karl >>>>> >>>>> >>>>> On Sat, Nov 24, 2018 at 7:28 AM Furkan KAMACI <furkankam...@gmail.com> >>>>> wrote: >>>>> >>>>>> Hi All, >>>>>> >>>>>> I try to test ManifoldCF via docker. I've run mysql as follows: >>>>>> >>>>>> docker run --name custom-mysql -v >>>>>> /home/ubuntu/mysql-conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=mypass >>>>>> -d >>>>>> mysql:5.7.16 >>>>>> >>>>>> I've run my docker container of ManifoldCF as follows: >>>>>> >>>>>> docker run --name manifoldcf --link custom-mysql:mysql -p 8345:8345 >>>>>> -it manifoldcf:2.7.1 >>>>>> >>>>>> However, I get: >>>>>> >>>>>> *org.apache.manifoldcf.core.interfaces.ManifoldCFException: Error >>>>>> getting connection: Communications link failure* >>>>>> >>>>>> *The last packet sent successfully to the server was 0 milliseconds >>>>>> ago. The driver has not received any packets from the server.* >>>>>> * at >>>>>> org.apache.manifoldcf.core.database.ConnectionFactory.getConnection(ConnectionFactory.java:83)* >>>>>> * at >>>>>> org.apache.manifoldcf.core.database.Database.executeUncachedQuery(Database.java:797)* >>>>>> * at >>>>>> org.apache.manifoldcf.core.database.Database$QueryCacheExecutor.create(Database.java:1457)* >>>>>> * at >>>>>> org.apache.manifoldcf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:146)* >>>>>> * at >>>>>> org.apache.manifoldcf.core.database.Database.executeQuery(Database.java:204)* >>>>>> * at >>>>>> org.apache.manifoldcf.core.database.DBInterfaceMySQL.performQuery(DBInterfaceMySQL.java:907)* >>>>>> * at >>>>>> org.apache.manifoldcf.core.database.DBInterfaceMySQL.getTableSchema(DBInterfaceMySQL.java:753)* >>>>>> * at >>>>>> org.apache.manifoldcf.core.database.BaseTable.getTableSchema(BaseTable.java:185)* >>>>>> * at >>>>>> org.apache.manifoldcf.agents.agentmanager.AgentManager.install(AgentManager.java:67)* >>>>>> * at >>>>>> org.apache.manifoldcf.agents.system.ManifoldCF.installTables(ManifoldCF.java:112)* >>>>>> * at >>>>>> org.apache.manifoldcf.jettyrunner.ManifoldCFJettyRunner.main(ManifoldCFJettyRunner.java:235)* >>>>>> *Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: >>>>>> Communications link failure* >>>>>> >>>>>> >>>>>> I can connect MySQL via command line, I can access it via another >>>>>> docker container and I can access it if I create a project which just >>>>>> includes ConnectionFactory.java of ManifoldCF. >>>>>> >>>>>> What may be the reason for this? >>>>>> >>>>>> Kind Regards, >>>>>> Furkan KAMACI >>>>>> >>>>>