diff options
Diffstat (limited to 'LINUX/PostgreSQL.md')
| -rw-r--r-- | LINUX/PostgreSQL.md | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/LINUX/PostgreSQL.md b/LINUX/PostgreSQL.md new file mode 100644 index 0000000..ce3ebf8 --- /dev/null +++ b/LINUX/PostgreSQL.md @@ -0,0 +1,165 @@ +# Как настроить сетевое подключение + +  Обновлено: 11.12.2024  Опубликовано: 11.10.2016 + +По умолчанию, сервер баз данных pgsql разрешает подключение только с локального компьютера. Данная инструкция показывает, как разрешить подключения с удаленных систем. + +Для настройки нам нужно будет внести изменения в два файла: +## Основной конфигурационный файл postgresql.conf + +Для начала посмотрим путь расположения конфигурационного файла **postgresql.conf**: + +su - postgres -c "psql -c 'SHOW config_file;'" + +Команда выдаст, примерно, следующее: + +----------------------------------------- + /var/lib/pgsql/data/postgresql.conf +(1 row) + +_* нас интересует строчка **/var/lib/pgsql/data/postgresql.conf** — это путь расположения нужного нам конфигурационного файла._ + +Теперь открываем на редактирование основной файл конфигурации PostgreSQL по найденному пути: + +vi /var/lib/pgsql/data/postgresql.conf + +Находим и редактируем следующее: + +listen_addresses = '*' + +_* по умолчанию, параметр закомментирован и настроен на прослушивание запросов только с локального сетевого интерфейса. В данном примере мы разрешили прослушивание запросов на всех IP-адресах **(*)**, но, если требуется более безопасная настройка, можно просто перечислить последние через пробел._ + +Чтобы изменения вступили в силу, перезапускаем службу postgresql: + +systemctl restart postgresql + +_* данное имя службы (**postgresql**) может сильно отличаться, в зависимости от системы. Иногда, необходимо добавить версию postgresql или использовать другое имя. Стоит обратиться к документации, чтобы выяснить точное название сервиса._ + +Проверим, что настройка применилась: + +ss -tunlp | grep 5432 + +_* где **5432 —** порт, на котором работает postgresql. Данный номер используется по умолчанию, но в вашей системе он может быть другим._ + +В ответ мы должны получить строку, содержащую что-то на подобие: + +... 0.0.0.0:5432 ... + +Первые **0.0.0.0** говорят о том, что PostgreSQL слушает сетевые запросы на всех сетевых интерфейсах. Если мы ограничили прослушивание, настраивая опцию **listen_addresses**, то вместо нулей мы увидим конкретный IP, на котором разрешили работать службе. + +## Файл host-based authentication (pg_hba.conf) + +Смотрим путь расположения конфигурационного файла **pg_hba.conf**: + +su - postgres -c "psql -c 'SHOW hba_file;'" + +Команда выдаст, примерно, следующее: + +--------------------------------- + /var/lib/pgsql/data/pg_hba.conf +(1 row) + +Открываем на редактирование файл, путь до которого вернула команда выше: + +vi /var/lib/pgsql/data/pg_hba.conf + +Находим: + +# IPv4 local connections: + +и сразу под ним добавляем строку на подобие: + +host all all 192.168.0.10/32 md5 + +* в данном примере мы: + +- разрешаем удаленные подключения к серверу с компьютера **192.168.0.10**. +- доступ предоставляется всем базам (первое **all**). +- доступ предоставляется всем учетным записям (второе **all**). +- обратите внимание на **md5** — способ хэширования пароля. В зависимости от версии postgresql может потребоваться использовать другой вариант. + +** При желании, вместо all можно указать конкретные данные для повышения безопасности. + +Чтобы изменения вступили в силу, перезапускаем службу postgresql: + +systemctl restart postgresql + +## Проверка подключения + +Проверить подключение можно с удаленного компьютера следующей командой: + +psql -h 192.168.0.15 -U usersql + +_* где **192.168.0.15** — IP-адрес сервера баз данных; **usersql** — имя учетной записи, от которой идет подключение._ + +================================================== +```sh + +# Установка POSTGRES из исходников: +curl ............ + +sudo tar xzvf postgresql.tar.gz +cd postgresql + +./configure --prefix=/var/lib/postgresql +make world +sudo make install world +sudo chown -R vlapa:vlapa /var/lib/postgresql + +export PGDATA=/var/lib/postgresql + +./bin/pg_ctl initdb +./bin/pg_ctl -D /var/lib/postgresql/main/ start +./bin/psql -h localhost -U vlapa postgres + \d + create database some_temp_db; + \c some_temp_db + + +#============================= +sudo tar xzvf file_name*.tgz -C /opt/ +cd /opt/file_name + +./install + +tar -xvzf имя_файла + +# Для архивов сжатых с помощью BZIP (bz, bz2 и т.д.) выполняем: +tar -xvjf имя_файла + +#Команды Tar: + +-x — извлечь файлы из архива; +-v — подробный вывод информации на экран; +-f — Обязательная опция. Если не указать, Tar будет пытаться использовать магнитную ленту; +-z — обработать архив сжатый gzip’ом; +-j — обработать архив сжатый bzip’ом. + +vim `~/.local/share/applications/PyCharm.desktop +``` + +```bash +[Desktop Entry] +Version=1.1 +Type=Application +Name=nsnake +GenericName=Classic snake game on the terminal +NoDisplay=false//отображать в меню +Icon=nsnake +Exec=nsnake +Terminal=true//запускать в терминале +Actions= +Categories=ActionGame;Game; +Keywords=snake;ncurses;textual;terminal; +``` + +```bash +[Desktop Entry] //desktop-файл всегда начинается с этого +Encoding=UTF-8 //кодировка +Type=Application //тип +Name=Eclipse C/C++IDE //имя +Comment=Eclipse C/C++IDE //комментарий в лаунчере +Terminal=false +Exec=/home/kofed/eclipse/eclipse //путь к исполняемому файлу +Icon=/home/kofed/eclipse/icon.xpm //путь к иконке +``` |
