Я хочу настроить PostgreSQL на Compute Engine, но при попытке изменить pg_hba.conf по sudo nano ../../etc/postgresql/9.3/main/pg_hba.conf
и я вставляю # IPv4 remote connections for the tutorial: host all all [YOUR_IPV4_ADDRESS]/32 md5
с IP-адресом моего локального компьютера и нажмитеControl+x
тогда данные не сохраняются
Я пытался выполнить шаги, указанные в руководстве сообщества Как настроить PostgreSQL на Compute Engine и проблем не обнаружил. Имейте в виду, что некоторые версии программного обеспечения, упомянутые в этом руководстве, устарели и должны быть заменены поддерживаемыми и, как следствие, пути к файлам должны быть обновлены также.
Пожалуйста, взгляните на мои шаги ниже:
Создайте экземпляр виртуальной машины (поскольку Ubuntu 14.04 из учебника устарел, я заменил его на Ubuntu 18.04 LTS).
$ gcloud compute instances create instance-1 --zone=europe-west3-a --machine-type=e2-medium --image=ubuntu-1804-bionic-v20200701 --image-project=ubuntu-os-cloud
Created [https://www.googleapis.com/compute/v1/projects/test-prj/zones/europe-west3-a/instances/instance-1].
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
instance-1 europe-west3-a e2-medium 10.156.15.192 35.246.XXX.YYY RUNNING
Установите PostgreSQL и используйте PSQL для завершения настройки:
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install postgresql postgresql-client postgresql-contrib
$ sudo -u postgres psql postgres
psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1))
Type "help" for help.
postgres=# \password postgres
Enter new password:
Enter it again:
postgres=# CREATE EXTENSION adminpack;
CREATE EXTENSION
postgres=# \q
$
PostgreSQL 9.3 был заменен на 10.12.
Настройте удаленный доступ к PostgreSQL:
3.1. редактировать pg_hba.conf
:
/etc/postgresql/10/main/pg_hba.conf
(путь к файлу был изменен из-за более новой версии): $ sudo nano /etc/postgresql/10/main/pg_hba.conf
# IPv4 remote connections for the tutorial:
host all all [YOUR_IPV4_ADDRESS]/32 md5
# IPv4 remote connections for the tutorial:
host all all 89.64.XXX.YYY/32 md5
$ sudo cat /etc/postgresql/10/main/pg_hba.conf
...
# Database administrative login by Unix domain socket
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
# IPv4 remote connections for the tutorial:
host all all 89.64.XXX.YYY/32 md5
3.2. редактировать postgresql.conf
/etc/postgresql/10/main/postgresql.conf
(путь к файлу был изменен из-за более новой версии): $ sudo nano /etc/postgresql/10/main/postgresql.conf
#listen_addresses = 'localhost'
;#
символ, чтобы раскомментировать строку;localhost
с участием *
(настройка '*' позволяет Postgres прослушивать все IP-адреса);$ sudo service postgresql restart
$ sudo service postgresql status
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Tue 2020-07-14 09:57:07 UTC; 6s ago
Process: 7452 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 7452 (code=exited, status=0/SUCCESS)
Jul 14 09:57:07 instance-1 systemd[1]: Starting PostgreSQL RDBMS...
Jul 14 09:57:07 instance-1 systemd[1]: Started PostgreSQL RDBMS.