如何使用dbeaver连接到docker上安装的、在本地主机上运行的Postgresql?
我在docker上运行postgresql数据库,并将其托管在本地计算机上。但是,当我尝试使用DBeaver连接到它时,会出现以下错误:如何使用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中
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命令并没有创建数据库,但我应该能够从这里了解到这一点。