Я установил pgAdmin4, используя процедуру установки APT на Ubuntu 18.04 (пакет по умолчанию без этого нового репозитория apt поставляет pgAdmin в версии 3, которая является устаревшей).
Вот как выглядит моя панель конфигурации, когда я открываю ее с помощью меню "Configure..." из трея иконок сервера pgadmin;
Что, похоже, соответствует содержимому ~/.config/pgadmin/pgadmin4. conf
файла:
$ cat ~/.config/pgadmin/pgadmin4.conf
[General]
ApplicationPath=
BrowserCommand=/usr/bin/brave-browser --private %URL%
FixedPort=true
OpenTabAtStartup=false
PortNumber=5433
PythonPath="/usr/local/lib/python3.6/dist-packages;/usr/lib/python3/dist-packages;/usr/local/lib/python3.6/dist-packages"
Теперь, если я запускаю pgadmin4
в консоли, я получаю следующее (запуск занимает несколько секунд, отсюда несколько одинаковых сообщений о сбоях в начале):
$ pgadmin4
QCoreApplication::applicationFilePath: Please instantiate the QApplication object first
QCoreApplication::applicationFilePath: Please instantiate the QApplication object first
Semaphore name: "pgadmin4-<user>-3ed67051278d25124b2c63f6651290d1-sema"
Shared memory segment name: "pgadmin4-<user>-3ed67051278d25124b2c63f6651290d1-shmem"
Python path: "/usr/local/lib/python3.6/dist-packages:/usr/lib/python3/dist-packages:/usr/local/lib/python3.6/dist-packages"
Python Home: ""
Webapp path: "/usr/share/pgadmin4/web/pgAdmin4.py"
Failed to connect to the server: "Connection refused" - request URL: "http://127.0.0.1:39931/misc/ping?key=28059bf0-430c-4759-a9c2-1b05e1b67a02" .
Failed to connect to the server: "Connection refused" - request URL: "http://127.0.0.1:39931/misc/ping?key=28059bf0-430c-4759-a9c2-1b05e1b67a02" .
Failed to connect to the server: "Connection refused" - request URL: "http://127.0.0.1:39931/misc/ping?key=28059bf0-430c-4759-a9c2-1b05e1b67a02" .
Failed to connect to the server: "Connection refused" - request URL: "http://127.0.0.1:39931/misc/ping?key=28059bf0-430c-4759-a9c2-1b05e1b67a02" .
Failed to connect to the server: "Connection refused" - request URL: "http://127.0.0.1:39931/misc/ping?key=28059bf0-430c-4759-a9c2-1b05e1b67a02" .
Failed to connect to the server: "Connection refused" - request URL: "http://127.0.0.1:39931/misc/ping?key=28059bf0-430c-4759-a9c2-1b05e1b67a02" .
Failed to connect to the server: "Connection refused" - request URL: "http://127.0.0.1:39931/misc/ping?key=28059bf0-430c-4759-a9c2-1b05e1b67a02" .
Failed to connect to the server: "Connection refused" - request URL: "http://127.0.0.1:39931/misc/ping?key=28059bf0-430c-4759-a9c2-1b05e1b67a02" .
Failed to connect to the server: "Connection refused" - request URL: "http://127.0.0.1:39931/misc/ping?key=28059bf0-430c-4759-a9c2-1b05e1b67a02" .
Failed to connect to the server: "Connection refused" - request URL: "http://127.0.0.1:39931/misc/ping?key=28059bf0-430c-4759-a9c2-1b05e1b67a02" .
Failed to connect to the server: "Connection refused" - request URL: "http://127.0.0.1:39931/misc/ping?key=28059bf0-430c-4759-a9c2-1b05e1b67a02" .
Failed to connect to the server: "Connection refused" - request URL: "http://127.0.0.1:39931/misc/ping?key=28059bf0-430c-4759-a9c2-1b05e1b67a02" .
Failed to connect to the server: "Connection refused" - request URL: "http://127.0.0.1:39931/misc/ping?key=28059bf0-430c-4759-a9c2-1b05e1b67a02" .
Server response: "PING" - request URL: "http://127.0.0.1:39931/misc/ping?key=28059bf0-430c-4759-a9c2-1b05e1b67a02" .
И он автоматически открывает новую вкладку Firefox, где я попросил его открыть новую вкладку Brave браузера в приватном режиме.
Что там не так и как я могу это исправить (т.е. заставить pgadmin4 запускаться в Brave приватной вкладке)?
Я также хочу иметь возможность запускать pgAdmin4 из ubuntu TTY (Ctrl + F1, а не из GUI-консоли), поэтому говорю ему запускаться без запуска какого-либо браузера, но я получил множество ошибок QT).
В качестве обходного пути я создал файл docker-compose (на основе этого образа; https://hub.docker.com/ r/dpage/pgadmin4/, как описано здесь: https://www.pgadmin.org/download/pgadmin-4-container/) следующим образом, чтобы иметь возможность подключаться к моим базам данных, размещенным на моя локальная машина:
version: '3.8'
services:
pgadmin4:
image: dpage/pgadmin4
container_name: pgadmin4
environment:
- PGADMIN_DEFAULT_EMAIL=youremail@whatever.com
- PGADMIN_DEFAULT_PASSWORD=password
- PGADMIN_LISTEN_PORT=5050
ports:
- "5050:5050"
network_mode: host
Просто запустите его с помощью # docker-compose up -d
И следите за журналами с помощью # docker-compose logs --tail 10 -f
Просмотрите http:// localhost:5050 и войдите в систему с учетными данными, определенными в выбранных вами переменных среды compose.
Не забудьте network_mode: host
, чтобы иметь возможность подключаться к вашим локальным базам данных. Также имейте в виду, что если вы подключаете другие службы, вы можете захотеть сохранить изоляцию сети в безопасности, поэтому будьте абсолютно уверены в том, что делаете.
Если вам когда-нибудь понадобится подключиться к удаленному серверу, это возможно; в этом случае вам нужно будет открыть SSH-туннель перед настройкой подключения в pgAdmin4. Мне также пришлось создать пользователя PostgreSQL, отличного от postgres
на удаленной машине, чтобы подключиться с помощью пароля (postgres
использует одноранговое соединение на удаленной машине, в чем я уверен работает из удаленного доступа).
Это решение, вероятно, со временем будет развиваться, поскольку оно основано на предварительной версии pgAdmin 4.29, как указано здесь:
https://www.pgadmin.org/docs/pgadmin4/development/container_deployment.html