summaryrefslogtreecommitdiff
path: root/LINUX/PostgreSQL.md
diff options
context:
space:
mode:
Diffstat (limited to 'LINUX/PostgreSQL.md')
-rw-r--r--LINUX/PostgreSQL.md165
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 @@
+# Как настроить сетевое подключение
+
+ ![Обновлено](https://www.dmosk.ru/img/public/time.jpg "Дата обновления") Обновлено: 11.12.2024  ![Опубликовано](https://www.dmosk.ru/img/public/time.jpg "Дата публикации") Опубликовано: 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 //путь к иконке
+```