Подключиться к существующему экземпляру Postgresql из WSL 2

Я использую Ubuntu WSL 2 в Windows 10. До того, как я установил WSL, у меня уже был установлен Postgresql в моей Windows 10. Я хотел подключиться к базе данных из WSL, но пока это не удается.

Во время работы:

psql

Я получил:

psql: error: could not connect to server: Connection refused
    Is the server running on host "127.0.0.1" and accepting
    TCP/IP connections on port 5432?

Во время работы:

psql -h 127.0.0.1 -p 5432 -U postgres

Я получил:

psql: error: could not connect to server: Connection refused
    Is the server running on host "127.0.0.1" and accepting
    TCP/IP connections on port 5432?

И WSL явно не видит базу данных. При запуске этого:

sudo service postgresql start

Он возвращает:

postgresql: unrecognized service

Я знаю, что одним из решений является установка базы данных в WSL, но я хотел сначала попытаться подключиться к существующему экземпляру.


person PiotrWolkowski    schedule 11.01.2021    source источник
comment
Используйте локальный сетевой адрес, а не петлевой адрес при использовании psql -h 127.0.0.1 -p 5432 -U postgres   -  person Raman Sailopal    schedule 12.01.2021
comment
@RamanSailopal Думаю, я тоже это пробовал. Я извлек адрес, используя grep nameserver /etc/resolv.conf | awk '{print $2}'   -  person PiotrWolkowski    schedule 12.01.2021
comment
Это должен быть один из адресов, отображаемых при выполнении команды ip add show.   -  person Raman Sailopal    schedule 12.01.2021
comment
Только что попробовал. Та же проблема...   -  person PiotrWolkowski    schedule 12.01.2021
comment
Вы когда-нибудь решали это? Сегодня такая же проблема. Вчера работал нормально, сегодня не могу подключиться. Хотя я не получаю сообщение об ошибке при запуске службы, она просто принимает команду.   -  person Matt West    schedule 07.04.2021
comment
Я запускаю его в WSL на докере и удаляю его из локального — так что не совсем.   -  person PiotrWolkowski    schedule 08.04.2021


Ответы (1)


Вы должны отредактировать pg_hba.conf

  1. проверьте подсеть wsl
    выполните ipconfig из cmd. Ниже приведен пример.
Ethernet Adapter vEthernet (WSL)
   IPv4 Address . . . . . . . . . . . .: 172.19.230.81
  1. отредактируйте pg_hba.conf
    pg_hba.conf путь C:\Program Files\PostgreSQL\{postgresqlVersion}\data\pg_hba.conf. если вы установили путь установки Windows Postgresql по умолчанию.
    маска подсети используется значение из ipconfig
host    all     all     172.168.140.0/24    md5
  1. перезапустите postgresql, вы можете перезапустить postgresql из services.msc. имя службы postgresql-x64-{postgresqlVersion}.

  2. доступ из psql

psql -h 172.19.230.81 -p 5432 -U postgres
person S.Hashiba    schedule 19.04.2021