Проблемы с первой установкой PostgreSQL 14.1 на Ubuntu 18.04

У меня возникли небольшие проблемы при первой установке PostgreSQL 14.

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

Я довольно много гуглил по этому поводу, и вся информация, которую я нахожу, кажется довольно фрагментированной, или я в конечном итоге следую за спагетти-следом гиперссылок ( a la-do-this-and-follow-this- другая-ссылка-с- дополнительной-информацией-, чем-вам-нужно -понять-эту-другую-требуемую-часть). Лично я не хочу прыгать по 50 разным местам в сети, чтобы попытаться придумать частичное решение, которое, как я считаю, работает, но позже окажется, что оно ошибочно. Я хочу знать, что делать и почему это работает. Я пробовал читать документацию и отказался от нее, потому что мне кажется, что сервер уже настроен администратором базы данных.

Вместо того , чтобы артикулировать свою проблему непосредственно (как я , кажется, иметь больше проблем , чем я хотел бы , пытаясь сделать это), я считаю , было бы легче сформулировать свою проблему косвенно заявив , что мои ожидания были бы после установки PostgreSQL для первого время.

Итак, для начала я упомяну, что я запускаю Ubuntu 18.04.6 LTS и устанавливаю PostgreSQL 14.1 с помощью следующей команды:

      sudo apt install postgresql-14

Прежде чем продолжить, я хотел бы заранее добавить побочное замечание, что мне не нужны предложения по альтернативной ОС или способу установки. Я просто хочу иметь возможность «начать работу», исходя из здравого смысла, именно с этого момента.

Двигаясь дальше, я знаю, что вышеупомянутая команда создает пользователя * nix с именем postgres.

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

  • После установки PostgreSQL через apt, это мои ожидаемые цели:
    • Я хочу, чтобы любой клиент мог подключаться к серверу базы данных с любого компьютера, на котором существует маршрут от клиента к серверу.
      • Для простоты этих заявленных целей , когда прямо или неявно указано, что я пытаюсь подключить клиента к серверу базы данных, я делаю предположение, что клиент может, как минимум, ping машина, на которой работает сервер, и наоборот.
      • На данный момент меня совсем не беспокоит доступность базы данных из общедоступного Интернета.
      • Я ожидаю, что смогу получить доступ к базе данных с любого компьютера в моей локальной сети, будь то настоящая локальная сеть или какая-то логическая локальная сеть (например, WAN или VPN).
    • Если я изменю пароль  PostgreSQL пользователя postgres , я ожидаю, что любой клиент, входящий на сервер базы данных через пользователя postgres , потребует пароль.
      • Это означает, что если я хочу изменить пароль на  some_password через \password postgres или ALTER USER postgres WITH PASSWORD 'some_password'; (Я предполагаю, что это то, как вы меняете пароль для входа в систему пользователя PostgreSQL) , тогда ...
        • Я ожидаю бега psql [-h host] -U postgres -Wс  любого хоста ...
          • Когда мне будет предложено ввести пароль ... 
            • Я могу только войти, введя точный пароль  some_password .
            • Ввод любого другого произвольного текста для пароля не должен позволить мне войти в систему.
              • Я добавляю это как требование, потому что предыдущие попытки установки показали мне, что это НЕ.
      • Я ожидаю, что смогу создать учетную запись пользователя PostgreSQL, отличную от  postgres (например, db_user ), с паролем и подчиняться тем же требованиям, что и  пользователь postgres .
        • т.е. после того, как новой учетной записи будет предоставлено разрешение на вход, должны быть наложены те же самые логичные требования для входа в систему  , то есть вы не сможете войти, если у вас нет правильной комбинации имени пользователя и пароля. 

Если процесс достижения вышеупомянутого можно объяснить таким образом, чтобы его можно было понять с минимальным умственным трением, я был бы чрезвычайно благодарен.

Не стесняйтесь предположить, что мои знания находятся на одном уровне со знаниями студента бакалавриата, который только что закончил первый год обучения в университете, который также понимает файловые системы Linux и основы компьютерных сетей. Я просто хочу, чтобы ответ был максимально доступен как можно большему количеству людей, поскольку я уверен, что я не единственный человек, который боролся с установкой PostgreSQL, несмотря на уровень компьютерной грамотности опытного пользователя.

1 ответ

  1. sudo apt установить postgresql

  2. sudo -u postgres psql

    • Установите пароль для этого пользователя с помощью \password или другого упомянутого вами метода.
  3. судо ви /etc/postgresql/10/main/pg_hba.conf

    • Сделать единственной незакомментированной непустой строкой в ​​этом файле host all all all md5
  4. судо ви /etc/postgresql/10/main/postgresql.conf

    • раскомментируйте строку listen_addresses и установите для нее значение '*'
  5. перезапуск службы sudo postgresql

Когда вы создаете нового пользователя, вы также должны создать новую базу данных с тем же написанием, что и у пользователя. В противном случае вам нужно будет указать имя базы данных при попытке войти в систему с помощью psql -U, например psql -U newname -d postgres -h[hhh]. Если вы на самом деле используете 14, а не 10, вам нужно будет изменить пути к файлам конфигурации, которые необходимо отредактировать соответствующим образом.

Другие вопросы по тегам