Issue creating source using JDBC plugin

Hi, I´m having troubles trying to connect the mysql database to dremio, or any other database that uses the JDBC plugin.
I´m using windows and the lastest docker image avaible of the comunity edition.

it´s shows me the following log

2020-06-09 07:30:54,254 [start-MySQL] ERROR c.d.e.store.jdbc.JdbcStoragePlugin - Connection is not valid.
java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=localhost)(port=3306)(type=master) : Connection refused (Connection refused)
at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:234)
at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:165)
at org.mariadb.jdbc.MariaDbDataSource.getConnection(MariaDbDataSource.java:290)
at org.mariadb.jdbc.MariaDbDataSource.getPooledConnection(MariaDbDataSource.java:455)
at org.apache.commons.dbcp2.datasources.InstanceKeyDataSource.testCPDS(InstanceKeyDataSource.java:1018)
at org.apache.commons.dbcp2.datasources.SharedPoolDataSource.registerPool(SharedPoolDataSource.java:167)
at org.apache.commons.dbcp2.datasources.SharedPoolDataSource.getPooledConnectionAndInfo(SharedPoolDataSource.java:127)
at org.apache.commons.dbcp2.datasources.InstanceKeyDataSource.getConnection(InstanceKeyDataSource.java:884)
at org.apache.commons.dbcp2.datasources.InstanceKeyDataSource.getConnection(InstanceKeyDataSource.java:858)
at com.dremio.exec.store.jdbc.CloseableDataSource$DatasourceWrapper.getConnection(CloseableDataSource.java:87)
at com.dremio.exec.store.jdbc.JdbcStoragePlugin.getState(JdbcStoragePlugin.java:366)
at com.dremio.exec.catalog.ManagedStoragePlugin.setLocals(ManagedStoragePlugin.java:787)
at com.dremio.exec.catalog.ManagedStoragePlugin.lambda$newStartSupplier$2(ManagedStoragePlugin.java:496)
at com.dremio.exec.catalog.ManagedStoragePlugin.lambda$nameSupplier$4(ManagedStoragePlugin.java:559)
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1604)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=localhost)(port=3306)(type=master) : Connection refused (Connection refused)
at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:234)
at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.connException(ExceptionMapper.java:95)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1203)
at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:560)
at org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:174)
at org.mariadb.jdbc.MariaDbDataSource.getConnection(MariaDbDataSource.java:288)
… 15 common frames omitted
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:607)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connect(AbstractConnectProtocol.java:501)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1195)
… 18 common frames omitted
2020-06-09 07:30:54,255 [start-MySQL] WARN c.d.e.catalog.ManagedStoragePlugin - Error starting new source: MySQL
java.lang.Exception: Unavailable: Could not connect to address=(host=localhost)(port=3306)(type=master) : Connection refused (Connection refused)
at com.dremio.exec.catalog.ManagedStoragePlugin.lambda$newStartSupplier$2(ManagedStoragePlugin.java:501)
at com.dremio.exec.catalog.ManagedStoragePlugin.lambda$nameSupplier$4(ManagedStoragePlugin.java:559)
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1604)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
2020-06-09 07:30:54,256 [qtp806554161-89] ERROR c.d.e.store.jdbc.JdbcStoragePlugin - JDBC source MySQL has not been started.
172.17.0.1 - - [09/Jun/2020:07:30:54 +0000] “PUT /apiv2/source/MySQL/?nocache=1591687854218 HTTP/1.1” 400 234 “http://localhost:9047/” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36”

am i doing something wrong? i tried everything and searched and im not able to find any solution. Thanks

@miguelh,

2020-06-09 07:30:54,254 [start-MySQL] ERROR c.d.e.store.jdbc.JdbcStoragePlugin - Connection is not valid.
java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=localhost)(port=3306)(type=master) : Connection refused (Connection refused)

  • Are you sure that MySQL is up and running on your localhost? For example, can you successfully connect a client other than Dremio to MySQL?
  • Are you sure that you are using the correct port? While 3306 is default, this is configurable on the MySQL side, so you may have something custom.
  • If you are using credentials, have you checked them?

Similar error message attempting to connect to oracle 19c via JDBC.
docker pull dremio/dremio-oss:4.3.1
docker run -p 9047:9047 -p 31010:31010 -p 45678:45678 dremio/dremio-oss:4.3.1
connection details: sid: BTPDB1 schema BASIS port:11521 on another docker container

Windows 10 pro v2004 WSL2, ubuntu 1804, docker desktop 2.3.0.3(45519) stable, oracle 19c pdb connects fine via sql developer

2020-06-11 17:00:09,672 [start-BTPDB1:BASIS] ERROR c.d.e.store.jdbc.JdbcStoragePlugin - Connection is not valid.
java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:854)
        at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:793)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:57)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:747)
        at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:406)
        at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:291)
        at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:206)
        at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:148)
        at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:91)
        at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:75)
        at org.apache.commons.dbcp2.datasources.InstanceKeyDataSource.testCPDS(InstanceKeyDataSource.java:1018)
        at org.apache.commons.dbcp2.datasources.SharedPoolDataSource.registerPool(SharedPoolDataSource.java:167)
        at org.apache.commons.dbcp2.datasources.SharedPoolDataSource.getPooledConnectionAndInfo(SharedPoolDataSource.java:127)
        at org.apache.commons.dbcp2.datasources.InstanceKeyDataSource.getConnection(InstanceKeyDataSource.java:884)
        at org.apache.commons.dbcp2.datasources.InstanceKeyDataSource.getConnection(InstanceKeyDataSource.java:858)
        at com.dremio.exec.store.jdbc.CloseableDataSource$DatasourceWrapper.getConnection(CloseableDataSource.java:87)
        at com.dremio.exec.store.jdbc.JdbcStoragePlugin.getState(JdbcStoragePlugin.java:366)
        at com.dremio.exec.catalog.ManagedStoragePlugin.setLocals(ManagedStoragePlugin.java:787)
        at com.dremio.exec.catalog.ManagedStoragePlugin.lambda$newStartSupplier$2(ManagedStoragePlugin.java:496)
        at com.dremio.exec.catalog.ManagedStoragePlugin.lambda$nameSupplier$4(ManagedStoragePlugin.java:559)
        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1604)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
        at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:571)
        at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:548)
        at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:682)
        at oracle.net.ns.NSProtocol.connect(NSProtocol.java:309)
        at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1596)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:588)
        ... 23 common frames omitted
Caused by: java.io.IOException: Connection refused, socket connect lapse 2 ms. /0.0.0.0 11521 0 1 true
        at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:233)
        at oracle.net.nt.ConnOption.connect(ConnOption.java:174)
        at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:510)
        ... 28 common frames omitted
Caused by: java.net.ConnectException: Connection refused
        at sun.nio.ch.Net.connect0(Native Method)
        at sun.nio.ch.Net.connect(Net.java:454)
        at sun.nio.ch.Net.connect(Net.java:446)
        at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:645)
        at java.nio.channels.SocketChannel.open(SocketChannel.java:189)
        at oracle.net.nt.TimeoutSocketChannel.connect(TimeoutSocketChannel.java:99)
        at oracle.net.nt.TimeoutSocketChannel.<init>(TimeoutSocketChannel.java:77)
        at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:192)
        ... 30 common frames omitted
2020-06-11 17:00:09,673 [start-BTPDB1:BASIS] WARN  c.d.e.catalog.ManagedStoragePlugin - Error starting new source: BTPDB1:BASIS
java.lang.Exception: Unavailable: IO Error: The Network Adapter could not establish the connection
        at com.dremio.exec.catalog.ManagedStoragePlugin.lambda$newStartSupplier$2(ManagedStoragePlugin.java:501)
        at com.dremio.exec.catalog.ManagedStoragePlugin.lambda$nameSupplier$4(ManagedStoragePlugin.java:559)
        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1604)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
2020-06-11 17:00:09,674 [qtp2092117157-101] ERROR c.d.e.store.jdbc.JdbcStoragePlugin - JDBC source BTPDB1:BASIS has not been started.        
172.17.0.1 - - [11/Jun/2020:17:00:09 +0000] "PUT /apiv2/source/BTPDB1%3ABASIS/?nocache=1591894809294 HTTP/1.1" 400 194 "http://localhost:9047/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
2020-06-11 17:02:09,340 [source-management2] ERROR c.d.e.store.jdbc.JdbcStoragePlugin - JDBC source BTPDB1:BASIS has not been started.

Try using host.docker.internal instead of localhost if you are connecting to Oracle local docker container

1 Like

Bingo, that fixed it: use host.docker.internal instead of localhost or 0.0.0.0

I will read more about docker networking.