Prisma1: Connect local DB with Data: Could not connect to server at http://localhost:4466. Please check if your server is running.

Created on 26 Jun 2018  ·  16Comments  ·  Source: prisma/prisma1

Describe the bug
I want to connect a local Prisma server to a local postgres database with an existing schema (outside of docker). I use Prisma CLI version 1.10 but it doesn't work. I'm using Ubuntu.

To Reproduce
Steps to reproduce the behavior:

***@dell:~/Proyectos/PRISMA$ prisma init server4
? Set up a new Prisma server or deploy to an existing server? Use existing database
? What kind of database do you want to deploy to? PostgreSQL
? Does your database contain existing data? Yes
? Enter database host localhost
? Enter database port 5432
? Enter database user ******
? Enter database password ******
? Enter name of existing database ******
? Use SSL? No
? Enter name of existing schema ******

Introspecting database 60ms
Created datamodel definition based on 1 database tables.

Created 3 new files:                                                                          

  prisma.yml           Prisma service definition
  datamodel.graphql    GraphQL SDL-based datamodel (foundation for database)
  docker-compose.yml   Docker configuration file

Next steps:

  1. Open folder: cd server4
  2. Start your Prisma server: docker-compose up -d
  3. Deploy your Prisma service: prisma deploy
  4. Read more about introspection:
     http://bit.ly/prisma-introspection
***@dell:~/Proyectos/PRISMA$ cd server4
***@dell:~/Proyectos/PRISMA/server4$ docker-compose up -d
Recreating server4_prisma_1 ... done
***@dell:~/Proyectos/PRISMA/server4$ prisma deploy
 ▸    Could not connect to server at http://localhost:4466. Please check if your server is running.

Get in touch if you need help: https://www.prisma.io/forum/
To get more detailed output, run $ export DEBUG="*"
***@dell:~/Proyectos/PRISMA/server4$

Thanks for you help.

bu0-needs-info statustale

Most helpful comment

Use host.docker.internal instead localhost:

...
databases:
    default:
        connector: postgres
        host: host.docker.internal
        port: '5432'
        database: db
        schema: public
        user: postgres
        password: root
        migrations: false

All 16 comments

Can you share the server logs? docker logs -f <prisma container id.

`Jun 26, 2018 1:27:18 PM org.postgresql.Driver connect
SEVERE: Connection error:
org.postgresql.util.PSQLException: Connection to localhost:5432 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:245)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
at org.postgresql.jdbc.PgConnection.(PgConnection.java:195)
at org.postgresql.Driver.makeConnection(Driver.java:452)
at org.postgresql.Driver.connect(Driver.java:254)
at slick.jdbc.DriverDataSource.getConnection(DriverDataSource.scala:101)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:341)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:193)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:430)
at com.zaxxer.hikari.pool.HikariPool.access$500(HikariPool.java:64)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:570)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:563)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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.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:589)
at org.postgresql.core.PGStream.(PGStream.java:69)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:156)
... 15 more

Jun 26, 2018 1:27:18 PM org.postgresql.core.v3.ConnectionFactoryImpl log
WARNING: ConnectException occurred while connecting to localhost:5432
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:589)
at org.postgresql.core.PGStream.(PGStream.java:69)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:156)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
at org.postgresql.jdbc.PgConnection.(PgConnection.java:195)
at org.postgresql.Driver.makeConnection(Driver.java:452)
at org.postgresql.Driver.connect(Driver.java:254)
at slick.jdbc.DriverDataSource.getConnection(DriverDataSource.scala:101)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:341)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:193)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:430)
at com.zaxxer.hikari.pool.HikariPool.access$500(HikariPool.java:64)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:570)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:563)
`

@maginkgo Maybe you wanna try this: https://github.com/prismagraphql/prisma/issues/2675#issuecomment-400326500

Im getting this error too. But above mentioned feed does not help. Anyone figured this out yet?

Use host.docker.internal instead localhost:

...
databases:
    default:
        connector: postgres
        host: host.docker.internal
        port: '5432'
        database: db
        schema: public
        user: postgres
        password: root
        migrations: false

@truesik You're awesome! That worked! Thanks!

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@truesik i tried using host.docker.internal but got this from the logs:

Oct 24, 2018 3:30:50 PM org.postgresql.core.v3.ConnectionFactoryImpl log
WARNING: IOException occurred while connecting to host.docker.internal:5433
java.net.UnknownHostException: host.docker.internal
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.postgresql.core.PGStream.(PGStream.java:69)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:156)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
at org.postgresql.jdbc.PgConnection.(PgConnection.java:195)
at org.postgresql.Driver.makeConnection(Driver.java:452)
at org.postgresql.Driver.connect(Driver.java:254)
at slick.jdbc.DriverDataSource.getConnection(DriverDataSource.scala:101)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:341)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:193)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:430)
at com.zaxxer.hikari.pool.HikariPool.access$500(HikariPool.java:64)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:570)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:563)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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)

Now i get it! host.docker.internal is not yet available for LINUX :(

I have the same issue when using the default setup referenced by prisma (using postgres connector) but when using mysql it works fine
My machine is linux mint (ubuntu)
the docker-compose logs
prisma_1_9c27259b8894 | Nov 19, 2018 11:17:18 PM org.postgresql.Driver connect
prisma_1_9c27259b8894 | SEVERE: Connection error:
prisma_1_9c27259b8894 | org.postgresql.util.PSQLException: FATAL: role "root" does not exist
prisma_1_9c27259b8894 | at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2433)
prisma_1_9c27259b8894 | at org.postgresql.core.v3.QueryExecutorImpl.readStartupMessages(QueryExecutorImpl.java:2566)
prisma_1_9c27259b8894 | at org.postgresql.core.v3.QueryExecutorImpl.(QueryExecutorImpl.java:131)
prisma_1_9c27259b8894 | at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:210)
prisma_1_9c27259b8894 | at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
prisma_1_9c27259b8894 | at org.postgresql.jdbc.PgConnection.(PgConnection.java:195)
prisma_1_9c27259b8894 | at org.postgresql.Driver.makeConnection(Driver.java:452)
prisma_1_9c27259b8894 | at org.postgresql.Driver.connect(Driver.java:254)
prisma_1_9c27259b8894 | at slick.jdbc.DriverDataSource.getConnection(DriverDataSource.scala:101)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:341)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:193)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:430)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.HikariPool.access$500(HikariPool.java:64)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:570)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:563)
prisma_1_9c27259b8894 | at java.util.concurrent.FutureTask.run(FutureTask.java:266)
prisma_1_9c27259b8894 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
prisma_1_9c27259b8894 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
prisma_1_9c27259b8894 | at java.lang.Thread.run(Thread.java:748)
prisma_1_9c27259b8894 |
prisma_1_9c27259b8894 | Exception in thread "main" java.sql.SQLTransientConnectionException: database - Connection is not available, request timed out after 5000ms.
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:548)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:186)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:145)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:83)
prisma_1_9c27259b8894 | at slick.jdbc.hikaricp.HikariCPJdbcDataSource.createConnection(HikariCPJdbcDataSource.scala:14)
prisma_1_9c27259b8894 | at slick.jdbc.JdbcBackend$BaseSession.(JdbcBackend.scala:453)
prisma_1_9c27259b8894 | at slick.jdbc.JdbcBackend$DatabaseDef.createSession(JdbcBackend.scala:46)
prisma_1_9c27259b8894 | at slick.jdbc.JdbcBackend$DatabaseDef.createSession(JdbcBackend.scala:37)
prisma_1_9c27259b8894 | at slick.basic.BasicBackend$DatabaseDef.acquireSession(BasicBackend.scala:249)
prisma_1_9c27259b8894 | at slick.basic.BasicBackend$DatabaseDef.acquireSession$(BasicBackend.scala:248)
prisma_1_9c27259b8894 | at slick.jdbc.JdbcBackend$DatabaseDef.acquireSession(JdbcBackend.scala:37)
prisma_1_9c27259b8894 | at slick.basic.BasicBackend$DatabaseDef$$anon$2.run(BasicBackend.scala:274)
prisma_1_9c27259b8894 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
prisma_1_9c27259b8894 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
prisma_1_9c27259b8894 | at java.lang.Thread.run(Thread.java:748)
prisma_1_9c27259b8894 | Caused by: org.postgresql.util.PSQLException: FATAL: role "root" does not exist
prisma_1_9c27259b8894 | at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2433)
prisma_1_9c27259b8894 | at org.postgresql.core.v3.QueryExecutorImpl.readStartupMessages(QueryExecutorImpl.java:2566)
prisma_1_9c27259b8894 | at org.postgresql.core.v3.QueryExecutorImpl.(QueryExecutorImpl.java:131)
prisma_1_9c27259b8894 | at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:210)
prisma_1_9c27259b8894 | at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
prisma_1_9c27259b8894 | at org.postgresql.jdbc.PgConnection.(PgConnection.java:195)
prisma_1_9c27259b8894 | at org.postgresql.Driver.makeConnection(Driver.java:452)
prisma_1_9c27259b8894 | at org.postgresql.Driver.connect(Driver.java:254)
prisma_1_9c27259b8894 | at slick.jdbc.DriverDataSource.getConnection(DriverDataSource.scala:101)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:341)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:193)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:430)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.HikariPool.access$500(HikariPool.java:64)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:570)
prisma_1_9c27259b8894 | at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:563)
prisma_1_9c27259b8894 | at java.util.concurrent.FutureTask.run(FutureTask.java:266)

the .yml
version: '3'
services:
prisma:
image: prismagraphql/prisma:1.14
restart: always
ports:
- "4466:4466"
environment:
PRISMA_CONFIG: |
managementApiSecret: my-server-secret-123
port: 4466
databases:
default:
connector: postgres
host: postgres
port: 5432
user: root
password: prisma
migrations: true
managementSchema: management
database: root
postgres:
image: postgres
restart: always
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: prisma
volumes:
- postgres:/var/lib/postgresql/data
volumes:
postgres:

@marktani @abdelrahman-mustafa This works for me when connecting to database running on localhost:

version: '3'
services:
  prisma:
    image: prismagraphql/prisma:1.22
    restart: always
    network_mode: "host"
    ports:
    - "4466:4466"
    environment:
      PRISMA_CONFIG: |
        port: 4466
        # uncomment the next line and provide the env var PRISMA_MANAGEMENT_API_SECRET=my-secret to activate cluster security
        # managementApiSecret: my-secret
        databases:
          default:
            connector: postgres
            host: __YOUR_POSTGRES_HOST__
            database: __YOUR_POSTGRES_DB__
            schema: __YOUR_POSTGRES_SCHEMA__
            user: __YOUR_POSTGRES_USER__
            password: __YOUR_POSTGRES_PASSWORD__
            rawAccess: true
            port: '5432'
            migrations: false

Note: I added network_mode: "host" after restart: always

@Musbell Thank you, adding network_mode: host to the prisma container worked! 👍
(Running Docker on Ubuntu)

@Musbell 's solution worked for me as well. On Ubuntu. Thanks!

I am still facing the issue the solutions did not worked for me on ubuntu 18.

environment:
      PRISMA_CONFIG: |
        port: 4466
        databases:
          default:
            connector: mysql
            host: host.docker.internal
            schema: graph
            user: graph
            password: graph
            rawAccess: true
            port: '3306'
            migrations: true

Logs

Exception in thread "main" java.lang.RuntimeException: Unable to load Prisma config: com.prisma.config.InvalidConfiguratio
n: Only Postgres connectors specify a schema. If they do they also need to specify a database. Other connectors only speci
fy a database.
        at scala.sys.package$.error(package.scala:26)
        at com.prisma.config.ConfigLoader$.load(ConfigLoader.scala:40)
        at com.prisma.local.PrismaLocalDependencies.<init>(PrismaLocalDependencies.scala:48)
        at com.prisma.local.PrismaLocalMain$.delayedEndpoint$com$prisma$local$PrismaLocalMain$1(PrismaLocalMain.scala:13)
        at com.prisma.local.PrismaLocalMain$delayedInit$body.apply(PrismaLocalMain.scala:8)
        at scala.Function0.apply$mcV$sp(Function0.scala:34)
        at scala.Function0.apply$mcV$sp$(Function0.scala:34)
        at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
        at scala.App.$anonfun$main$1$adapted(App.scala:76)
        at scala.collection.immutable.List.foreach(List.scala:388)
        at scala.App.main(App.scala:76)
        at scala.App.main$(App.scala:74)
        at com.prisma.local.PrismaLocalMain$.main(PrismaLocalMain.scala:8)
        at com.prisma.local.PrismaLocalMain.main(PrismaLocalMain.scala)
Exception in thread "main" java.lang.RuntimeException: Unable to load Prisma config: com.prisma.config.InvalidConfiguration: Only Postgres connectors specify a schema. If they do they also need to specify a database. Other connectors only specify a database.

Some update ?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jannone picture jannone  ·  3Comments

sorenbs picture sorenbs  ·  3Comments

marktani picture marktani  ·  3Comments

dohomi picture dohomi  ·  3Comments

notrab picture notrab  ·  3Comments