如何在 pgadmin4 中导出连接?
我打算在 docker 中使用 pgadmin,并且想按照建议映射servers.json。所以我想简单地导出本地 pgadmin4 中的连接并映射它们。
我找到了导出服务器的解释。不幸的是这不起作用。我尝试了 ubuntu 18.04 LTS 和 Windows 10 Pro,但总是出现错误消息。这是我在 ubuntu 中检索到的消息:
$ python3 /usr/share/pgadmin4/web/setup.py --dump-servers output_file.json
Traceback (most recent call last):
File "/usr/share/pgadmin4/web/setup.py", line 406, in <module>
dump_servers(args)
File "/usr/share/pgadmin4/web/setup.py", line 63, in dump_servers
app = create_app()
File "/usr/share/pgadmin4/web/pgadmin/__init__.py", line 229, in create_app
create_app_data_directory(config)
File "/usr/share/pgadmin4/web/pgadmin/setup/data_directory.py", line 29, in create_app_data_directory
_create_directory_if_not_exists(config.SESSION_DB_PATH)
File "/usr/share/pgadmin4/web/pgadmin/setup/data_directory.py", line 15, in _create_directory_if_not_exists
os.mkdir(_path)
FileNotFoundError: [Errno 2] No such file or directory: '/var/cache/pgadmin/sessions'
Run Code Online (Sandbox Code Playgroud)
这似乎合乎逻辑,因为不存在这样的文件。但是如何导出我的服务器设置并通过servers.json …
我已经在服务器A(端口6432,主机地址:10.XX.XX.92 )上配置了pgbouncer ,它将接受在服务器B(端口5433,主机地址:10.XX.XX.90)上运行的postgres服务器的连接。该 postgres 服务器有 2 个数据库。(postgres 和 db1)
我有 2 个不同类型的用户(user1、user2)将连接到同一数据库(db1)。这两个用户对 db1 具有不同的权限集。
下面是我如何配置 pgbouncer.ini 文件的示例。
数据库1 = 主机=10.XX.XX.90 端口=5433 用户=user1 密码='pwd1' dbname=db1
数据库2 = 主机=10.XX.XX.90 端口=5433 用户=user2 密码='pwd2' dbname=db1
现在,当我尝试通过 pgAdmin 连接到此数据库时,它给我一个错误“没有这样的数据库”。
以下是我用于通过 pgadmin 连接 user1 的连接变量。
主机=10.XX.XX.92
端口=6432
维护数据库=database1
用户名=user1
密码=pwd1
但是当我使用相同的变量并尝试使用 DBeaver 或 psql 连接时,我能够成功连接到数据库 db1。
有谁知道这只是 pgAdmin 问题还是我在这里遗漏了一些东西。
注意:我还尝试过一件事。如果在 pgbouncer.ini 中,我将数据库变量(database1)命名为与实际数据库名称(db1)相同,则 pg Admin 允许我连接到数据库。如果我只有一个用户连接到数据库,但我有两个用户,并且他们在配置文件中不能有相同的连接名称,那么这对我有用。
这是docker-compose.yml文件:
version: '3'
services:
############################
# Setup database container #
############################
postgres_db:
image: postgres
restart: always
ports:
- ${POSTGRES_PORT}:${POSTGRES_PORT}
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- PGDATA=/var/lib/postgresql/data/pgdata
- POSTGRES_DB=${POSTGRES_DB}
volumes:
- ./data:/var/lib/postgresql/data
networks:
- db_network
pgadmin:
image: dpage/pgadmin4:4.19
restart: always
ports:
- 8001:8080/tcp
environment:
- PGADMIN_LISTEN_ADDRESS=0.0.0.0
- PGADMIN_LISTEN_PORT=8080
- PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL}
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD}
networks:
- db_network
networks:
db_network:
driver: bridge
Run Code Online (Sandbox Code Playgroud)
.env同一目录下有一个文件。
# The above refers to the name of the postgres container since using docker-compose
# This is because …Run Code Online (Sandbox Code Playgroud) 如何更新Pgadmin4docker镜像而不丢失文件夹中的任何用户信息/var/lib/pgadmin?
我已经安装了 PostgreSQL 12 和 pgAdmin 4。当我尝试运行 pgAdmin 4 时,出现致命错误“无法联系 pgAdmin 4 服务器”。我尝试以管理员身份运行它,删除“C:\Users\User\AppData\Roaming\pgAdmin”中的文件并将“C:\Program Files\PostgreSQL\12\bin”添加到系统环境变量中。我不知道我还能做什么。我确信 PostgreSQL 服务器正在工作,因为 services.msc 的服务正在运行。
以下是运行 pgAdmin4 的日志。我可以看到这里有问题,但我不知道如何解决这个问题:
Traceback (most recent call last):
File "C:/Program Files/pgAdmin 4/v4/web/pgAdmin4.py", line 217, in <module>
main()
File "C:/Program Files/pgAdmin 4/v4/web/pgAdmin4.py", line 199, in main
app.run(
File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\flask\app.py", line 943, in run
run_simple(host, port, self, **options)
File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line 1052, in run_simple
inner()
File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line 996, in inner
srv = make_server(
File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line …Run Code Online (Sandbox Code Playgroud) Linux 薄荷 20.2
我想安装 PgAdmin4。
这里是官方教程
https://www.pgadmin.org/download/pgadmin-4-apt/
步骤: sudo curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add % 接收百分比 % Xferd 平均速度 时间 时间 当前 Dload 上传总花费左速度 100 3935 100 3935 0 0 4517 0 --:--:-- --:--:-- --: --:-- 4512
sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'
Run Code Online (Sandbox Code Playgroud)
结果:
Hit:1 http://dl.google.com/linux/chrome/deb stable InRelease
Hit:2 http://apt.postgresql.org/pub/repos/apt focal-pgdg InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:4 http://archive.canonical.com/ubuntu focal InRelease
Hit:5 http://ppa.launchpad.net/kelleyk/emacs/ubuntu focal InRelease
Hit:6 http://apt.postgresql.org/pub/repos/apt bionic-pgdg InRelease
Hit:7 https://repo.skype.com/deb stable …Run Code Online (Sandbox Code Playgroud) 当我尝试在最新的 ubuntu 版本 21.10 中安装 pgAdmin4 时,我遇到了一些问题。
我已使用以下命令安装了存储库的公钥
sudo curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用以下命令创建存储库配置文件时,我收到下面提到的错误。
sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'
Run Code Online (Sandbox Code Playgroud)
错误日志
404 Not Found [IP: 2604:1380:2000:7501::69 443]
Hit:11 http://us.archive.ubuntu.com/ubuntu impish-backports InRelease
Get:12 http://us.archive.ubuntu.com/ubuntu impish-updates/main amd64 DEP-11 Metadata [7,972 B]
Get:13 http://us.archive.ubuntu.com/ubuntu impish-updates/universe amd64 DEP-11 Metadata [2,008 B]
Reading package lists... Done
E: The repository 'https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/impish pgadmin4 Release' does not have a Release file.
N: Updating from such a repository can't …Run Code Online (Sandbox Code Playgroud) 由于工作原因,我现在使用 pgAdmin IV(版本 5.7),之前我只使用过 pgAdmin III。我的问题是我已经正确设置了字符集
set client_encoding = 'Win1252';
Run Code Online (Sandbox Code Playgroud)
当我执行选择时,仍然出现此错误。我使用两者连接到同一个数据库,并且我链接到的数据库是 Postgres 9.5。当我对 pgAdmin III 执行相同操作时,我正确地获取了所有数据。
当我show server_encoding在数据库上运行时,我收到 ** WIN1252 *:

错误:
“charmap”编解码器无法解码位置 8773 中的字节 0x8d:字符映射到 <未定义>

“NoneType”对象没有属性“strip”
我删除了FK和PK。Pgadmin 已停止正常工作。与 FK 和 PK 相关的表也不起作用。什么都没有被删除。并且数据没有显示。我该如何修复?
我正在使用 PgAdmin4 版本 7.4。从今天开始,我突然无法查看表或行,并且所有表都出现此错误。
missing FROM-clause entry for table "rel"
LINE 8: ...ER JOIN pg_catalog.pg_constraint con ON con.conrelid=rel.oid
Run Code Online (Sandbox Code Playgroud)
每当我单击view data按钮或运行诸如 之类的查询时,都会出现此错误Select * from my_table。以前我访问数据没有任何问题。我该如何解决这个问题?
pgadmin-4 ×10
postgresql ×6
pgadmin ×4
docker ×2
linux-mint ×1
pgbouncer ×1
ubuntu ×1
windows ×1