Проблемы с первой установкой 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 .
- т.е. после того, как новой учетной записи будет предоставлено разрешение на вход, должны быть наложены те же самые логичные требования для входа в систему , то есть вы не сможете войти, если у вас нет правильной комбинации имени пользователя и пароля.
- Это означает, что если я хочу изменить пароль на some_password через
- Я хочу, чтобы любой клиент мог подключаться к серверу базы данных с любого компьютера, на котором существует маршрут от клиента к серверу.
Если процесс достижения вышеупомянутого можно объяснить таким образом, чтобы его можно было понять с минимальным умственным трением, я был бы чрезвычайно благодарен.
Не стесняйтесь предположить, что мои знания находятся на одном уровне со знаниями студента бакалавриата, который только что закончил первый год обучения в университете, который также понимает файловые системы Linux и основы компьютерных сетей. Я просто хочу, чтобы ответ был максимально доступен как можно большему количеству людей, поскольку я уверен, что я не единственный человек, который боролся с установкой PostgreSQL, несмотря на уровень компьютерной грамотности опытного пользователя.
1 ответ
sudo apt установить postgresql
sudo -u postgres psql
- Установите пароль для этого пользователя с помощью \password или другого упомянутого вами метода.
судо ви /etc/postgresql/10/main/pg_hba.conf
- Сделать единственной незакомментированной непустой строкой в этом файле
host all all all md5
- Сделать единственной незакомментированной непустой строкой в этом файле
судо ви /etc/postgresql/10/main/postgresql.conf
- раскомментируйте строку listen_addresses и установите для нее значение '*'
перезапуск службы sudo postgresql
Когда вы создаете нового пользователя, вы также должны создать новую базу данных с тем же написанием, что и у пользователя. В противном случае вам нужно будет указать имя базы данных при попытке войти в систему с помощью psql -U, например
psql -U newname -d postgres -h[hhh]
. Если вы на самом деле используете 14, а не 10, вам нужно будет изменить пути к файлам конфигурации, которые необходимо отредактировать соответствующим образом.