Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用dbeaver连接到docker上安装的、在本地主机上运行的Postgresql?_Postgresql_Docker_Localhost_Dbeaver - Fatal编程技术网

如何使用dbeaver连接到docker上安装的、在本地主机上运行的Postgresql?

如何使用dbeaver连接到docker上安装的、在本地主机上运行的Postgresql?,postgresql,docker,localhost,dbeaver,Postgresql,Docker,Localhost,Dbeaver,我在docker上运行postgresql数据库,并将其托管在本地计算机上。但是,当我尝试使用DBeaver连接到它时,会出现以下错误: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. Connection refused: connect 以下是我在Docker中

我在docker上运行postgresql数据库,并将其托管在本地计算机上。但是,当我尝试使用DBeaver连接到它时,会出现以下错误:

Connection to localhost:5432 refused.
Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
Connection refused: connect
以下是我在Docker中运行的创建PostgreSQL映像的命令:

rrowe@LAPTOP-AFM43BOB MINGW64 /c/Program Files/Docker Toolbox
$ docker run --name RiohRoweDB -e POSTGRES_PASSWORD=Charlie -d -p 5432:5432 postgres
55c78d059fdb2b19bfdd24f579eaf26ef5b00c77ead564ee7d128fd06996789d

rrowe@LAPTOP-AFM43BOB MINGW64 /c/Program Files/Docker Toolbox
$ docker exec -it RiohRoweDB bash
root@55c78d059fdb:/# psql -U postgres
psql (12.0 (Debian 12.0-2.pgdg100+1))
Type "help" for help.

postgres=# CREATE DATABASE postgresqlDB
postgres-# \q
root@55c78d059fdb:/# exit
exit

rrowe@LAPTOP-AFM43BOB MINGW64 /c/Program Files/Docker Toolbox
$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
55c78d059fdb        postgres            "docker-entrypoint.s…"   2 minutes ago       Up 2 minutes        0.0.0.0:5432->5432/tcp   RiohRoweDB
在DBeaver端,我添加了一个具有以下参数的连接:

Host:localhost
Port:5432
Database:postgresqlDB
User:postgres
Password:Charlie
测试连接时(“连接设置”中的“测试连接”按钮)

我得到以下错误:

Connection to localhost:5432 refused.
Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
Connection refused: connect

我遵循的本教程没有使用DBeaver:

如果使用Docker Toolbox,主机上的程序需要使用Docker机器IP的IP地址,通常是192.168.99.100,才能到达容器进程;本地主机无法工作David Maze

如果您是从官方网站来到这里的,请不要忘记将端口转发标志
-p 5432:5432
添加到您的初始化命令中,就像Rioh在上面所做的那样:

docker run --name RiohRoweDB -e POSTGRES_PASSWORD=Charlie -d -p 5432:5432 postgres

也可以考虑在介质上研究这个问题:


我无法查看该链接。请发布docker compose或DockerFile。目前还不清楚您是如何达到这种状态的。您的代码片段表明您可能一直在修补一些东西,然后以您所处的状态结束。您当前的
listen\u地址设置是什么?可能共享
显示侦听地址
输出?如果使用Docker Toolbox,主机上的程序需要使用来自
Docker机器IP
的IP地址,通常为192.168.99.100,才能到达容器进程<代码>本地主机
不起作用。#pissall-教程没有附带Dockerfile,我也没有创建Dockerfile。我进行了搜索,但在我的项目目录中找不到。是否有一个我应该查找此文件的特定位置#里奇恩。我尝试在docker(docker:'SHOW'不是docker命令)和容器中为postgresql提供的bash中使用“SHOW listen_addresses”命令。(bash:SHOW:command-not-found)我是在正确的环境中调用此命令的吗?#DavidMaze谢谢。这解决了我的问题。出于某种原因,我使用的createdatabase命令并没有创建数据库,但我应该能够从这里了解到这一点。