Hey guys, I have a more deployment oriented questi...
# orm-help
p
Hey guys, I have a more deployment oriented question. I'm hosting my own prisma server on a root server, or I'm willing to do so. It's no problem to let the nodejs server run properly. But I have some problems with the docker container. My config looks like this:
Copy code
version: '3'
services:
  prisma:
    image: prismagraphql/prisma:1.7
    restart: always
    ports:
    - "4466:4466"
    environment:
      PRISMA_CONFIG: |
        port: 4466
        managementApiSecret: abc
        databases:
          default:
            connector: mysql
            active: true
            host: localhost
            port: 3306
            user: dude
            password: 123456
As you can guess, mysql is installed on the root server as well and should be called by the user 'dude', that has currently ALL PRIVILEGES on all dbs @ %. But unfortunately I get the following error:
Copy code
prisma_1  | Exception in thread "main" java.sql.SQLTransientConnectionException: database - Connection is not available, request timed out after 5001ms.
prisma_1  |     at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:548)
prisma_1  |     at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:186)
prisma_1  |     at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:145)
prisma_1  |     at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:83)
prisma_1  |     at slick.jdbc.hikaricp.HikariCPJdbcDataSource.createConnection(HikariCPJdbcDataSource.scala:18)
prisma_1  |     at slick.jdbc.JdbcBackend$BaseSession.<init>(JdbcBackend.scala:439)
prisma_1  |     at slick.jdbc.JdbcBackend$DatabaseDef.createSession(JdbcBackend.scala:47)
prisma_1  |     at slick.jdbc.JdbcBackend$DatabaseDef.createSession(JdbcBackend.scala:38)
prisma_1  |     at slick.basic.BasicBackend$DatabaseDef.acquireSession(BasicBackend.scala:218)
prisma_1  |     at slick.basic.BasicBackend$DatabaseDef.acquireSession$(BasicBackend.scala:217)
prisma_1  |     at slick.jdbc.JdbcBackend$DatabaseDef.acquireSession(JdbcBackend.scala:38)
prisma_1  |     at slick.basic.BasicBackend$DatabaseDef$$anon$2.run(BasicBackend.scala:239)
prisma_1  |     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
prisma_1  |     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
prisma_1  |     at java.lang.Thread.run(Thread.java:748)
prisma_1  | Caused by: java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=localhost)(port=3306)(type=master) : Connection refused (Connection refused)
prisma_1  |     at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:161)
prisma_1  |     at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.connException(ExceptionMapper.java:79)
prisma_1  |     at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1040)
prisma_1  |     at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:490)
prisma_1  |     at org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:144)
prisma_1  |     at org.mariadb.jdbc.Driver.connect(Driver.java:90)
prisma_1  |     at slick.jdbc.DriverDataSource.getConnection(DriverDataSource.scala:101)
prisma_1  |     at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:341)
prisma_1  |     at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:193)
prisma_1  |     at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:430)
prisma_1  |     at com.zaxxer.hikari.pool.HikariPool.access$500(HikariPool.java:64)
prisma_1  |     at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:570)
prisma_1  |     at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:563)
prisma_1  |     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
prisma_1  |     ... 3 more
prisma_1  | Caused by: java.net.ConnectException: Connection refused (Connection refused)
prisma_1  |     at java.net.PlainSocketImpl.socketConnect(Native Method)
prisma_1  |     at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
prisma_1  |     at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
prisma_1  |     at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
prisma_1  |     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
prisma_1  |     at java.net.Socket.connect(Socket.java:589)
prisma_1  |     at java.net.Socket.connect(Socket.java:538)
prisma_1  |     at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connect(AbstractConnectProtocol.java:398)
prisma_1  |     at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1032)
prisma_1  |     ... 14 more
I know that this goes more in the direction of sysadmin, but maybe someone here has an idea, what could be the cause of this error. Thanks a ton in advance! 🙂
f
I think, that the "local" port of the mysql is not available within the docker image
p
That may be the case yes, that's what I'm testing right now.
f
depending on the networking type you may have to find out the ip of your host computer in the network the containers and your host are sharing
maybe the --add-host flag will help
p
@fgreinus It did eventually work out now. It was necessary do edit some mysql settings. But now I have a different issue, when I try to execute
prisma deploy
.
Could not connect to server at http://localhost:4466. Please check if your server is running.