我试图通过 GUI(Psequel)访问我的数据库。
我已按如下方式从容器中转发端口设置:
app.yml:
expose:
<标准定义>
- "15432:5432" # PostgreSQL
同时按如下方式更改了我的密码:
./launcher enter app
su - postgres
psql
ALTER ROLE postgres WITH PASSWORD '<your password>';
但我无法访问数据库。有什么建议吗?
我试图通过 GUI(Psequel)访问我的数据库。
我已按如下方式从容器中转发端口设置:
app.yml:
expose:
<标准定义>
- "15432:5432" # PostgreSQL
同时按如下方式更改了我的密码:
./launcher enter app
su - postgres
psql
ALTER ROLE postgres WITH PASSWORD '<your password>';
但我无法访问数据库。有什么建议吗?
如果您只需要数据库的静态快照,可以从 https:///admin/backups 下载备份。该文件应为 *.tar.gz 格式,解压后将得到 *.sql 文件。在另一台机器(甚至可以是您的笔记本电脑)上创建一个 PostgreSQL 数据库,然后导入该 *.sql 文件。
现在,您应该能够通过任何能连接 PostgreSQL 数据库的方式自由访问数据。
我使用上述方法,并通过 ODBC 访问 Discourse 的 PostgreSQL 数据库。
希望这能帮到您。
好的,好主意。
实际上我已经解决了。它在容器中也运行在 5432 端口。
应该写成:
expose:
<标准定义>
谢谢
大家好,
我可以通过以下步骤使用 pgadmin 访问我的 postgres 数据库:
如果这对您有效,请告诉我。
此致,
金伯利
@EricGT 没想过!谢谢!! ![]()
您好!
我想和您再次确认一下。当我将 dump.sql 导出到 PostgreSQL 数据库时,表是空的。不清楚是什么原因。以下是我下载备份文件后遵循的步骤:
dump.sql 文件它显示一切都成功了,但当我“查看数据”时,表是空的。
另外,这可能与实例的管理方式有关,但似乎也未包含 users 表,但我需要该表来了解谁做了什么。
我在这里遗漏了什么吗?谢谢!
dump.sql 的大小是多少?它应该相当大(至少几 MB)。你能看看文件里面吗?例如:
$ zgrep -i "CREATE TABLE public.users" dump.sql.gz
#输出应该是
> CREATE TABLE public.users (
如果看不到这个,那么转储看起来就不对了。
另外,如果你分享导出转储的步骤或在此处粘贴控制台输出,我们可以更好地理解你的问题。
刚重新检查了一下。
gz 文件,例如 abc-2025-01-23-095947-v20250122131007.sql.gz。在 Windows 上使用 7-zip 解压缩文件,这会创建一个同名但去掉 .gz 后缀的目录。C:\Users\Groot\Downloads>dir *.sql.gz
01/23/2025 05:04 AM 407,213,170 abc-2025-01-23-095947-v20250122131007.sql.gz
C:\Users\Groot\Downloads>dir *.sql
01/23/2025 05:04 AM <DIR> abc-2025-01-23-095947-v20250122131007.sql
C:\Users\Groot\Downloads\abc-2025-01-23-095947-v20250122131007.sql>dir
01/23/2025 05:04 AM 1,572,346,154 abc-2025-01-23-095947-v20250122131007.sql
1 File(s) 1,572,346,154 bytes
type /a | more
C:\Users\Groot\Downloads\abc-2025-01-23-095947-v20250122131007.sql>type "abc-2025-01-23-095947-v20250122131007.sql" /a | more
abc-2025-01-23-095947-v20250122131007.sql
--
-- PostgreSQL database dump
--
-- Dumped from database version 15.8 (Debian 15.8-1.pgdg110+1)
-- Dumped by pg_dump version 15.10 (Debian 15.10-1.pgdg120+1)
-- Started on 2025-01-23 09:59:47 UTC
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
希望这能让您能够使用 SQL 文件通过 PGAdmin 导入数据。
附注
大约 5 年前,当我 发帖 讨论这个问题时,下载的文件类型是 tar.gz,现在是 sql.gz。唯一的区别是现在需要少一步解压缩。
你好 @EricGT
非常感谢你的帮助!我遵循了所有相同的步骤(多了一个,因为我的文件仍然是 tar.gz 格式)。我得到了与 sql 文件相同的结果:
--
-- PostgreSQL database dump
--
.........
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
但是,问题是当我使用 PgAdmin 获取数据时,所有表都是空的,并且 Users 表也丢失了。
非常感谢您的所有帮助!我真的很感激。原来我试图使用最新的 postgresql 版本,而 dump.sql 来自之前的版本。我在尝试遵循您使用的指南时发现了这一点。谢谢!