Підключення до postgresql з windows. Підключення бази даних PostgreSQL

Жарознижувальні засоби для дітей призначаються педіатром. Але бувають ситуації невідкладної допомоги за лихоманки, коли дитині потрібно дати ліки негайно. Тоді батьки беруть на себе відповідальність і застосовують жарознижувальні препарати. Що можна давати дітям грудного віку? Чим можна збити температуру у старших дітей? Які ліки найбезпечніші?

0

Я в тупіку. Ми маємо базу даних postgres 9.2, яку ми використовуємо протягом деякого часу. Тепер нам потрібно мати можливість підключатися до нього з-за меж нашої мережі.

Отже, ми налаштовуємо зовнішні IP-адресу і тестуємо, що ми можемо підключитися до порту 5432 з віддаленого хоста через telnet. Таким чином, це доводить, що мережне з'єднанняпрацює, брандмауери і т.д. Все добре.

Коли я намагаюся підключитися за допомогою:
PSQL -h db.host.com -d ім'я_бд -p 5432 -U

я повернусь Psql: сервер закрив з'єднання зненацька.

Я перевірив, що
listen_addresses = "*" встановлюється в postgresql.conf

І на pg_hba.conf ми маємо лінію, яка читає (тільки для тестування)
господаря всі 0.0.0.0/0 md5

І я перезавантажив базу даних, щоб перевірити її вибрані зміни.
Таким чином, це має дозволяти з'єднання з будь-якого джерела.

Версія psql на сервері БД становить 9.2.14, але в клієнті - 9.2.13.

Будь-які пропозиції чи ідеї?

  • 1 відповідь
  • Сортування:

    Активність

1

Я хотів би спробувати кілька речей, щоб отримати більше інформації:

    хвіст Postgres увійти на сервер, щоб побачити, що відбувається при підключенні.

    Запустити psql --version , щоб переконатися, що воно більш-менш відповідає версії сервера. (Я бачу, ви це вже зробили, але я залишу його тут для нащадків.)

    Запустити strace psql .... , щоб побачити, як далеко доходять до відмови.

Це, як і раніше, звучить як проблема з мережею для мене. Що таке команда telnet, з якою ви працюєте? "Зовнішній IP" звучить так само, як ви на AWS. Налаштування віддаленого доступу VPC займає багато кроків. Чи є у вас якісь інші послуги, відкриті для зовні, які працюють?

Ви також можете усунути неполадки, відключивши сервер Postgres і за допомогою nc , щоб прослухати 5432 . Потім підключіться до telnet і подивіться, чи можете ви надсилати дані взад і вперед.

1

Підлога, дякую за пропозиції. Я зробив стрейч та перевіряв версії. І ви мали рацію, намагався підключитися від AWS. Виявляється, це був ярус, який я використовував у балансувальнику навантаження, щоб дозволити доступ лише до діапазонів IP-2 ІС, які публікує AWS. Коли я вимкнув irule, я міг негайно підключитися. Таким чином, це повинна бути ірреальна логіка, так як я перевірив публічну IP-адресу мого екземпляра EC2, і вона дійсно була вказана в irule через повідомлення CIDR. -

System Administration

Цей пост - коротка інструкціядля початківців, для тих, хто вперше встановив PostgreSQL. Тут вся необхідна інформація для того, щоб розпочати роботу з PostgreSQL.

Підключення до СУБД

Перше, що потрібно зробити - отримати доступ до PostgreSQL, доступ як суперкористувач.
Установки автентифікації знаходяться у файлі pg_hba.conf.
  1. local all postgres peer
Цей рядок говорить про те, що користувач postgres може підключатися до будь-якої бази даних локальної СУБД PostgreSQL через сокет. Пароль при цьому не потрібно вводити, операційна система передасть ім'я користувача, і воно буде використане для аутентифікації.
Підключаємося:
  1. $ sudo -u postgres psql postgres postgres
Щоб мати можливість підключатися по мережі, треба додати до рядка:
  1. # TYPE DATABASE USER ADDRESS METHOD
  2. hostssl all all 0.0.0.0/0 md5
Метод аутентифікації md5означає, що для підключення доведеться ввести пароль. Це не дуже зручно, якщо ви часто користуєтеся консоллю psql. Якщо ви хочете автоматизувати якісь дії, то погана новина в тому, що psql не приймає пароль як аргумент. Є два шляхи вирішення цих проблем: установка відповідної змінної оточення та зберігання пароля у спеціальному файлі.pgpass.

Встановлення змінного оточення PGPASSWORD

Відразу скажу, що краще цей спосіб не використовувати, бо деякі Операційні системидозволяють переглядати звичайним користувачам змінні оточенняза допомогою ps. Але якщо хочеться, треба написати в терміналі:
  1. export PGPASSWORD=mypasswd
Змінна буде доступна у поточній сесії. Якщо потрібно задати змінну для всіх сесій, треба додати рядок з прикладу в файл.bashrc або.bash_profile

Зберігання пароля у файлі.pgpass

Якщо ми говоримо про Linux, то файл має бути в $HOME (/home/username). Права на запис та читання мають бути лише у власника (0600). У файл потрібно записувати рядки виду:
  1. hostname:port:database:username:password
У перші чотири поля можна записати "*", що означатиме відсутність фільтрації (повну вибірку).

Отримання довідкової інформації

\? - видасть всі доступні команди разом із їх коротким описом,
\h - видасть список усіх доступних запитів,
\h CREATE - видасть довідку за конкретним запитом.

Управління користувачами СУБД

Як отримати список користувачів PostgreSQL? Або можна зробити запит до таблиці pg_user.
  1. SELECT * FROM pg_user;

Створення нового користувача PostgreSQL

З командної оболонки psql можна зробити з допомогою команди CREATE.
  1. CREATE USER username WITH password "password" ;
Або можна скористатися терміналом.
  1. createuser -S -D -R -P username
Введення пароля буде запрошено.

Зміна пароля користувача

  1. ALTER USER username WITH PASSWORD "password";

Зміна ролей користувача

Щоб користувач мав право створювати бази даних, виконайте запит:
  1. ALTER ROLE username WITH CREATEDB;

Управління базами даних

Виведення списку баз даних у терміналі psql: Теж саме з терміналу Linux:
  1. psql -l
Створення бази даних із psql (PostgreSQL Terminal)
  1. CREATE DATABASE dbname OWNER dbadmin;
Створення нової бази даних за допомогою терміналу:
  1. createdb -O username dbname;

Налаштування прав доступу до бази даних

Якщо користувач є власником (owner) бази даних, він має всі права. Але якщо ви хочете дати доступ іншому користувачеві, зробити це можна за допомогою команди GRANT. Запит нижче дозволить користувачеві підключатися до бази даних. Але не забувайте про конфігураційний файл pg_hba.conf, в ньому теж повинні бути відповідні дозволи на підключення.
  1. GRANT CONNECT ON DATABASE dbname TO dbadmin;

PostgreSQL - це кросплатформна об'єктно-реляційна СУБД з відкритим вихідним кодом. З цієї статті ви дізнаєтесь, як встановити PostgreSQL у Ubuntu Linux, підключитися до нього та виконати пару простих SQL-запитів, а також про те, як налаштувати резервне копіювання.

Щоб встановити PostgreSQL 9.2 в Ubuntu 12.10, виконайте такі команди:

sudo apt-add-repository ppa:pitti/postgresql
sudo apt-get update
sudo apt-get install postgresql-9.2

Спробуємо попрацювати із СУБД через оболонку:

sudo -u postgres psql

Створимо тестову базу даних та тестового користувача:

CREATE DATABASE test_database;
CREATE USER test_user WITH password "qwerty" ;
GRANT ALL ON DATABASE test_database TO test_user;

Для виходу з оболонки введіть \q .

Тепер спробуємо попрацювати із створеною базою даних від імені test_user:

psql -h localhost test_database test_user

Створимо нову таблицю:

CREATE SEQUENCE user_ids;
CREATE TABLE users (
id INTEGER PRIMARY KEY DEFAULT NEXTVAL ("user_ids" ) ,
login CHAR (64),
password CHAR (64));

Зверніть увагу, що на відміну від деяких інших СУБД, у PostgreSQL немає стовпців із властивістю auto_increment. Натомість у постгресі використовуються послідовності (sequences). На даний момент достатньо знати, що за допомогою функції nextval ми можемо отримувати унікальні числа для заданої послідовності:

SELECT NEXTVAL ("user_ids");

Прописавши як значення за замовчуванням для поля id таблиці users значення NEXTVAL ("user_ids" ), ми досягли того ж ефекту, що дає auto_increment. При додаванні нових записів до таблиці ми можемо не вказувати ID, тому що унікальний ID буде згенерований автоматично. Декілька таблиць можуть використовувати одну і ту ж послідовність. Таким чином ми зможемо гарантувати, що значення деяких полів цих таблиць не перетинаються. У цьому сенсі послідовності більш гнучкі, ніж auto_increment.

Точно таку ж таблицю можна створити і за допомогою лише однієї команди:

CREATE TABLE users2 (
id SERIAL PRIMARY KEY ,
login CHAR (64),
password CHAR (64));

У цьому випадку послідовність поля id створюється автоматично.

Тепер за допомогою команди \d можна ознайомитись зі списком усіх доступних таблиць, а за допомогою \d users – побачити опис таблиці users. Якщо ви не отримали інформацію, що вас цікавить, спробуйте \d+ замість \d . Список баз даних можна отримати командою \l, а перейти на конкретну БД - командою \c dbname. Для відображення довідки з команд скажіть \? .

Важливо відзначити, що в PostgreSQL за замовчуванням імена таблиць і стовпців наводяться до нижнього регістру. Якщо ця поведінка небажана, можна скористатися подвійними лапками:

CREATE TABLE "anotherTable" ("someValue" VARCHAR (64));

Ще одна особливість PostgreSQL, з якою можуть виникнути складнощі на початку роботи з цією СУБД, - так звані «схеми». Схема є щось на зразок простору імен для таблиць, як каталог з таблицями всередині бази даних.

Створення схеми:

CREATE SCHEMA bookings;

Перемикання на схему:

SET search_path TO bookings;

Переглянути існуючі схеми можна командою \dn . За промовчанням використовується схема з ім'ям public. В принципі, можна успішно використовувати PostgreSQL і не знаючи про існування схем. Але при роботі з успадкованим кодом, а також у деяких граничних випадках, знання про схеми може дуже стати в нагоді.

В іншому робота з PostgreSQL мало чим відрізняється від роботи з будь-якою іншою реляційною СУБД:

INSERT INTO users (login, password)
VALUES ("afiskon", "123456");
SELECT * FROM users;

Якщо зараз ви спробуєте підключитися до постгресу з іншої машини, то зазнайте невдачі:

psql -h 192.168.0.1 test_database test_user

Psql: можна не підключатися до сервера: Connection refused
Is the server running on host "192.168.0.1" and accepting
TCP/IP connections on port 5432?

Щоб виправити це, додайте рядок:

listen_addresses = "localhost,192.168.0.1"

… у файл /etc/postgresql/9.2/main/postgresql.conf, а також.

Увага : Якщо Ви працюєте в ОС Windows і ще не встановлювали PostgreSQL та «Дебет Плюс V12», тоді можете завантажити зі сторінки завантаження збірку «Дебет Плюс V12» з попередньо встановленою СУБД PostgreSQL та підключеною базою даних (з базовою конфігурацією для України). В іншому випадку Вам потрібно попередньо встановити СУБД PostgreSQL та програмний комплекс «Дебет Плюс V12», після чого можна буде налаштувати з'єднання та імпортувати базу даних PostgreSQL, керуючись цією інструкцією.

Для підключення бази даних PostgreSQL необхідно виконати такі дії:

    Запустіть «Дебет Плюс V12» та додайте нову базу (контекстне меню «Додати нову»).

    Залишіть позначку в полі "Додати до списку наявної".

"СУБД" - POSTGRE.

"Сервер бази даних" - localhost.

"Ім'я бази даних" - вкажіть ім'я бази даних із СУБД PostgreSQL латинськими літерами в нижньому регістрі (маленькими літерами).

Примітка: Зазвичай використовується одна база. Для спеціальних цілей базу можна розбити на кілька, тоді потрібно поставити галочку навпроти «Використовувати кілька баз даних», натиснути кнопку «Далі» та вказати відповідність «міток» фізичним базам. Це може бути потрібно, наприклад, у тому випадку, якщо бази даних кількох підприємств будуть посилатися на ті самі довідники (контрагентів, номенклатури тощо). Цей випадок не обговорюється далі.

«Каталог налаштувань» - вкажіть шлях до налаштувань бази для PostgreSQL (диск \ DebetPlusV12 \ base \ pgdpbase).

Збережіть зміни, натиснувши кнопку «Готово».

    Запустіть pgAdmin (адміністратор СУБД PostgreSQL), додайте сервер (File/Add Server...) та додайте нову базу (меню New Database...).

Введіть ім'я сервера, localhost у полі Host, решту полів заповнюйте за бажанням.

Введіть назву бази даних у полі «Name» (така сама, як ввели в полі «Сервер» у налаштуваннях з'єднання з базою даних «Дебет Плюс V12»).

    Для імпорту бази даних із архіву скористайтеся меню «Restore...»

Вкажіть шлях до архіву бази dpbase.bakup (диск \ DebetPlusV12 \ base \ pgdpbase).

    Можна додати користувача dpadmin, який є адміністратором у «Дебет Плюс V12» за промовчанням (без пароля).

Надайте всі права даному користувачеві.

Примітка : Можна не додавати користувача dpadmin, тоді при активації бази потрібно буде вводити ім'я адміністратора postgres.

Оновіть список баз (меню "Refresh").

Примітка : Якщо Ви не бажаєте надавати користувачеві права Superuser, тоді надайте права на Tables і Views. Для цього, виділивши відповідний об'єкт, виберіть пункт контекстного меню Grant Wizard.

На вкладці Selection натисніть кнопку Check all, а на вкладці Privileges поставте позначку ALL і натисніть кнопку Add/Change. Збережіть зміни.

    Активуйте налаштування з'єднання з базою даних у ПЗ «Дебет Плюс V12» (контекстне меню «Зробити активним»).

Система запросить пароль для підключення до бази даних. Натисніть "Так".

Увага! Якщо таке повідомлення не з'явилося, запустіть оновлення структур бази даних, вибравши пункт меню «Сервіс»/«Оновлення структур БД».

В результаті з'явиться наступне вікно:

Залишіть всі позначки за промовчанням (обов'язково повинні бути позначки в колонці «Переіндексувати» для всіх таблиць БД).

Після завершення модифікації можете починати роботу.

    Запустіть «Дебет Плюс V12» та додайте нову базу (контекстне меню «Додати нову»).

    Залишіть позначку у полі «Додати до списку наявної»:

У першому полі вкажіть довільну назву бази (на кожному робочому комп'ютері назва може бути різною).

"СУБД" - POSTGRE.

"Сервер бази даних" - ім'я або IP-адреса сервера.

"Порт сервера бази даних" - вкажіть порт сервера бази даних за промовчанням 5432.

"Ім'я бази даних" - вкажіть ім'я бази даних латинськими літерами в нижньому регістрі.

"Ім'я схеми бази даних" - dpbase.

Поставте галочку лише у полі «Використовувати авторизацію Дебет Плюс».

«Каталог налаштувань» - вкажіть шлях до налаштувань бази для PostgreSQL (мережевий шлях DebetPlusV12 base pgdpbase).

Збережіть внесені зміни шляхом натискання кнопки «Готово», після чого зробіть активну базу.

    Встановіть параметри запуску (головне меню «Параметри запуску»)

У вікні, що з'явилося, у полі «Пароль для зміни налаштувань» введіть пароль 150301 і натисніть на кнопку «Прийняти».

Вкажіть шлях до папки JDebet на сервері та натисніть зберегти. Зробіть активну базу і можете приступати до роботи.

Підтримайте проект - поділіться посиланням, дякую!
Читайте також
Як встановити безкоштовний антивірус аваст Як встановити безкоштовний антивірус аваст Як очистити комп'ютер від вірусів самостійно Як очистити комп'ютер від вірусів самостійно Як повністю очистити комп'ютер від вірусів Як повністю очистити комп'ютер від вірусів