Connecting to MYSQL

0
Hi, I have 8 tables in Mysql whose data has to be pushed to Mendix database. How can i achieve this. ( I recently started with mendix.. ) if my approach is wrong pls let me know What i want to achieve: i would be having ~20 excel files with each having 8-10 sheets(all these will be having same template) i need this data to be pushed to the mendix db. (as of now i know the manual way to push each page to the mendix db through the excel importer module) i planned to use third party tool to upload the data to external-db which will be configured to display the data I cant use external DB as my main source as  my requirement is, displaying the records to the users as per their role( in the each excel sheet there will be a column “Unit” which should be Equal to  the logged in user’s role). i believe the above might be possible but due to limited knowledge; I could only achieve this  in mendix internal DB, as there is access rule in the domain model by using xpath constraint so the current solution what i came up with is  –  Push the data from excel to the External_DB using 3rdParty tool which are already in place and which will be imported from these 8 tables to the mendix DB using microflow or similar approach while trying to implement the above solution we are facing the error to connect to the db… Tried with the forum posts and the documentation(this did not help much as there was very limited explaination ). If there is any better solution to achieve this please feel free to let me know . Any help is greatly appreciated.   Steps we did and errors we are facing currently  I downloaded all the jar files we downloaded database connector, mxModelReflection, DatabaseReplication  and tried to run the project which gave the following error Path is configured in the environment and system variables     com.mendix.m2ee.api.AdminException: An error occurred while initializing the Runtime: Error on initializing database connection.     at com.mendix.basis.impl.MxRuntimeImplBase.start(MxRuntimeImplBase.java:267) Caused by: com.mendix.connectionbus.ConnectionBusRuntimeException: Error on initializing database connection.     at com.mendix.connectionbus.ConnectionBusInitializer.throwDefault$1(ConnectionBusInitializer.scala:52) Caused by: java.sql.SQLSyntaxErrorException: error parsing url : Incorrect port value : mysql         at org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:62)     at org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:158)     at org.mariadb.jdbc.MariaDbDataSource.getConnection(MariaDbDataSource.java:305)     at com.mendix.connectionbus.connections.jdbc.JdbcDataSourceConnectionFactory.createConnection(JdbcDataSourceConnectionFactory.scala:30)     at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:374)     at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:571)     at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:298)     at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:223)     at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:141)     at com.mendix.connectionbus.connections.jdbc.ConnectionManager.attemptToConnect$1(ConnectionManager.scala:32)     at com.mendix.connectionbus.connections.jdbc.ConnectionManager.getConnection(ConnectionManager.scala:42)     at com.mendix.connectionbus.ConnectionBusInitializer.$anonfun$createConnection$1(ConnectionBusInitializer.scala:46)     at scala.util.Try$.apply(Try.scala:210)     at com.mendix.connectionbus.ConnectionBusInitializer.retry(ConnectionBusInitializer.scala:54)     at com.mendix.connectionbus.ConnectionBusInitializer.createConnection(ConnectionBusInitializer.scala:46)     at com.mendix.connectionbus.ConnectionBusInitializer.initialize(ConnectionBusInitializer.scala:38)     at com.mendix.connectionbus.ConnectionBusImpl.initialize(ConnectionBusImpl.scala:268)     at com.mendix.basis.impl.MxRuntimeImplBase.initializeConnectionBus(MxRuntimeImplBase.java:417)     at com.mendix.basis.impl.MxRuntimeImplBase.start(MxRuntimeImplBase.java:239)     at com.mendix.m2ee.appcontainer.actions.StartAction.startRuntime(StartAction.scala:30)     at com.mendix.m2ee.appcontainer.actions.StartAction.execute(StartAction.scala:17)     at com.mendix.m2ee.appcontainer.server.handler.HttpAdminHandlerBase.service(HttpAdminHandlerBase.java:128)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:529)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1385)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1307)     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)     at org.eclipse.jetty.server.Server.handle(Server.java:563)     at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)     at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)     at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)     at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)     at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:416)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:385)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:140)     at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:936)     at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1080)     at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.sql.SQLException: error parsing url : Incorrect port value : mysql     at org.mariadb.jdbc.UrlParser.parseInternal(UrlParser.java:226)     at org.mariadb.jdbc.UrlParser.parse(UrlParser.java:178)     at org.mariadb.jdbc.MariaDbDataSource.initialize(MariaDbDataSource.java:496)     at org.mariadb.jdbc.MariaDbDataSource.getConnection(MariaDbDataSource.java:296)     at com.mendix.connectionbus.connections.jdbc.JdbcDataSourceConnectionFactory.createConnection(JdbcDataSourceConnectionFactory.scala:30)     at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:374)     at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:571)     at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:298)     at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:223)     at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:141)     at com.mendix.connectionbus.connections.jdbc.ConnectionManager.attemptToConnect$1(ConnectionManager.scala:32)     at com.mendix.connectionbus.connections.jdbc.ConnectionManager.getConnection(ConnectionManager.scala:42)     at com.mendix.connectionbus.ConnectionBusInitializer.$anonfun$createConnection$1(ConnectionBusInitializer.scala:46)     at scala.util.Try$.apply(Try.scala:210)     at com.mendix.connectionbus.ConnectionBusInitializer.retry(ConnectionBusInitializer.scala:54)     at com.mendix.connectionbus.ConnectionBusInitializer.createConnection(ConnectionBusInitializer.scala:46)     at com.mendix.connectionbus.ConnectionBusInitializer.initialize(ConnectionBusInitializer.scala:38)     at com.mendix.connectionbus.ConnectionBusImpl.initialize(ConnectionBusImpl.scala:268)     at com.mendix.basis.impl.MxRuntimeImplBase.initializeConnectionBus(MxRuntimeImplBase.java:417)     at com.mendix.basis.impl.MxRuntimeImplBase.start(MxRuntimeImplBase.java:239)     at com.mendix.m2ee.appcontainer.actions.StartAction.startRuntime(StartAction.scala:30)     at com.mendix.m2ee.appcontainer.actions.StartAction.execute(StartAction.scala:17)     at com.mendix.m2ee.appcontainer.server.handler.HttpAdminHandlerBase.service(HttpAdminHandlerBase.java:128)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:529)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1385)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1307)     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)     at org.eclipse.jetty.server.Server.handle(Server.java:563)     at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)     at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)     at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)     at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)     at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:416)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:385)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:140)     at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:936)     at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1080)     at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.IllegalArgumentException: Incorrect port value : mysql     at org.mariadb.jdbc.HostAddress.getPort(HostAddress.java:180)     at org.mariadb.jdbc.HostAddress.parseSimpleHostAddress(HostAddress.java:167)     at org.mariadb.jdbc.HostAddress.parse(HostAddress.java:138)     at org.mariadb.jdbc.UrlParser.defineUrlParserParameters(UrlParser.java:274)     at org.mariadb.jdbc.UrlParser.parseInternal(UrlParser.java:222)     at org.mariadb.jdbc.UrlParser.parse(UrlParser.java:178)     at org.mariadb.jdbc.MariaDbDataSource.initialize(MariaDbDataSource.java:496)     at org.mariadb.jdbc.MariaDbDataSource.getConnection(MariaDbDataSource.java:296)     at com.mendix.connectionbus.connections.jdbc.JdbcDataSourceConnectionFactory.createConnection(JdbcDataSourceConnectionFactory.scala:30)     at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:374)     at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:571)     at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:298)     at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:223)     at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:141)     at com.mendix.connectionbus.connections.jdbc.ConnectionManager.attemptToConnect$1(ConnectionManager.scala:32)     at com.mendix.connectionbus.connections.jdbc.ConnectionManager.getConnection(ConnectionManager.scala:42)     at com.mendix.connectionbus.ConnectionBusInitializer.$anonfun$createConnection$1(ConnectionBusInitializer.scala:46)     at scala.util.Try$.apply(Try.scala:210)     at com.mendix.connectionbus.ConnectionBusInitializer.retry(ConnectionBusInitializer.scala:54)     at com.mendix.connectionbus.ConnectionBusInitializer.createConnection(ConnectionBusInitializer.scala:46)     at com.mendix.connectionbus.ConnectionBusInitializer.initialize(ConnectionBusInitializer.scala:38)     at com.mendix.connectionbus.ConnectionBusImpl.initialize(ConnectionBusImpl.scala:268)     at com.mendix.basis.impl.MxRuntimeImplBase.initializeConnectionBus(MxRuntimeImplBase.java:417)     at com.mendix.basis.impl.MxRuntimeImplBase.start(MxRuntimeImplBase.java:239)     at com.mendix.m2ee.appcontainer.actions.StartAction.startRuntime(StartAction.scala:30)     at com.mendix.m2ee.appcontainer.actions.StartAction.execute(StartAction.scala:17)     at com.mendix.m2ee.appcontainer.server.handler.HttpAdminHandlerBase.service(HttpAdminHandlerBase.java:128)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:529)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1385)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1307)     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)     at org.eclipse.jetty.server.Server.handle(Server.java:563)     at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)     at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)     at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)     at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)     at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:416)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:385)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:140)     at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:936)     at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1080)     at java.base/java.lang.Thread.run(Thread.java:829)  
asked
2 answers
0

I think the simplest way for an automatic import is to create dedicated microflow for this action. You could schedule it in Mendix (look for “scheduled event”) and call from this microflow a custom Java action that is performing the actual import. Then it’s up to you whether you prefer to directly access the excel files or the MySQL DB instead. (In case you decide to access the excel files directly I would recommend the ApachePoi library (XSSF). It’s quite powerful and reliable.)
This approach would ensure that you don’t run into problems while updating the Mendix DB with your data, since you would use the update functions provided by Mendix.

answered
0

Hi Ashely,
You can use Database replication module to import your data from an external database to your mendix database. It is quite easy to setup. 

link : https://marketplace.mendix.com/link/component/160

Hope it makes your work easier!!

answered