Как установить драйвер для postgresql
Данный продукт устанавливается на сервере либо на компьютере, выполняющем роль сервера.
Разработчиком продукта PostgreSQL является откытое сообщество.
При возникновении вопросов, связанных с работой данного продукта, необходимо обращаться к Вашему системному администратору либо на форумы поддержки PostgreSQL.
Ниже мы рассмотрим установку PostgreSQL для Windows.
Для установки PostgreSQL выполните следующие действия:
1. Запустите на установку файл дистрибутива для вашей версии Windows (32 или 64 разрядная)(дважды щелкните по нему мышью). В фоновом режиме будет выполнена распаковка инсталлятора программы.
В открывшемся окошке выберите русский язык.
2. Откроется форма установки PostgreSQL.
При условии принятия Лицензионного соглашения нажмите кнопку "Принимаю".
3. На шаге Выбор компонентов, чтобы были установлены флажки по всем значениям раздела Компоненты.
При необходимости установите флажки по всем значениям. Затем нажмите кнопку Далее.
4. На следующем шаге выберите папку, в которую вы хотите установить экземпляр PostgreSQL.
Затем жмите на кнопку Далее, и выберите папку, в которую будут установлены базы данных.
5. На следующем шаге "Параметры сервера" задайте пароль для Супер-пользователя. Порт и имя пользователя не меняйте.
Нажмите на кнопку Далее.
6. На следующем шаге выберите опцию "Использовать параметры по умолчанию".
Нажмите на кнопку Далее.
7. На следующем шаге выберите название папки в меню Пуск (рекомендуется оставить по учмолчанию) нажмите на кнопку Установить.
8. На следующем шаге "Копирование файлов" начнется установка PostgreSQL .
Дождитесь окончания установки.
9. При завершении установки PostgreSQL откроется форма завершения установки.
Нажмите на кнопку «Готово».
Установка PostgreSQL будет завершена.
Особенности настройки PostgreSQL для работы в сетевом режиме
Нам нужно проверить, чтобы в файле postgresql.conf в строчке "listen_addresses" стояла '*', а в файле pg_hba.conf прописать ip адреса, с которых мы разрешаем доступ к PostgreSQL.
Файлы доступны в папке data в папке с установленным PostgreSQL, кроме того файлы доступны через меню программы pgAdmin.
Для редактирования конфигурационных файлов через pgAdmin запустите его, подключитесь к серверу и откройте пункт меню "Инструменты-Конфигурация сервера-postgresql.conf".
Файл postgresql.conf откроется в редакторе программы pgAdmin.
Аналогично, для редактирования pg_hba.conf откройте пункт меню "Инструменты-Конфигурация сервера-pg_hba.conf".
Для установки ODBC драйвера для Windows скачаеи инсталлятор msi, запустим его на установку и нажмем кнопку Next.
В следующем окне мы оставим выбранным для установки ODBC Driver И нажмем Next, затем завершим установку драйвера.
Установленные драйвера должны появится в списке доступных при создании нового источника данных.
Тем не менее, для Windows95/98 так и для Windows NT с давних пор существовали ODBC и JDBC драйвера, при использовании которых можно было вполне сносно работать с сервером PostgreSQL , работающим на каком-либо UNIX'е. Далее речь пойдет об ODBC драйверах.
ODBC драйвера и их установка
Это самораспаковывающийся архив в установкой через InstallShield. То есть все, что вам нужно сделать для установки, это скачать данный файл в какой-нибудь временный каталог, а затем запустить его. Данный архив содержит еще и менеджер ODBC драйвера, который я рекомендую вам поставить (вам будет задан соответствующий вопрос во время установки). Однако, для того, чтобы начать работать, установки недостаточно. Вам еще необходимо произвести настройку ODBC через ODBC Administrator, который вызывается из окна Панель управления (Control Panel) под именем 32bit ODBC .
Настройка OBDC драйверов
Итак, запускаем 32bit ODBC . В результате получаем диалоговое окно, следующего вида:
У вас в окне по всей видимости будет пусто. У меня, как видите уже установлен ODBC драйвер для Interbase. Нажимаем кнопку Add. и снова получаем диалоговое окно вида:
Выбираем "PostgreSQL" и нажимаем кнопку Готово . В результате имеем еще одно окно вида:
Поля Database , Server , Username и Password в вашем случае будут пустыми и вам необходимо заполнить их самостоятельно. Тут никаких трудностей возникнуть не должно: Database - база данных, с которой вы будете работать, Server - машина, на которой работает PostgreSQL, Username и Password - соответственно имя пользователя и пароль с использованием которых будет осуществляться подключение к базе данных (это значит, что на сервере с PostgreSQL у вас должен быть заведен пользователь именно с таким именем и паролем).
-
Я установил, что заполнение полей Username и Password не является необходимым. Более того, оно вредно, поскольку Windows хранит эти значения в реестре в PLAIN TEXT. Т.е. любой пионер, который научился пользоваться программой regedit может прочитать ваш пароль!
Параметр Port вам необходимо сменить только в том случае, если вы работаете с нестандартным портом (см. файл /etc/postgresql/postmaster.init на предмет изменения номера порта).
Как видно из рисунка, есть еще две кнопки Driver и DataSource .
При нажатии на кнопку Driver получаем окно вида:
В этом окне я рекомендую установить флажок Recognize Unique Indexes . Если вам нужно протоколирование транзакций, то установите CommitLog(C:\postodbc.log . Понятно, что Read Only надо убрать. Еще я убираю Disable Generic Optimizer . Читайте про то, что обозначают настройки ниже.
При нажатии на кнопку DataSource получаем окно вида:
Сразу же рекомендую убрать флажек ReadOnly . А вот Protocol нужно установить в зависимости от версии PostgreSQL, с которой вы работаете. Я также включаю флажек Show Column , так как он не мешает. Читайте про то, что обозначают настройки ниже.
-
Я установил, что включение флажка Row Versioning приводит к проблеме в Delphi , так как при формировании запросов, Delphi считает, что в любой таблице должно существовать поле xid , чего естественно в реальности нет. Т.е. этот флажок устанавливать не нужно.
Финал
Ну вот собственно и все. Теперь вы можете работать с сервером PostgreSQL , с помощью любой программы в Microsoft Windows, которая знает как общаться через ODBC драйвера.
Замечания по Delphi
Эти два случая из моего опыта работы с PostgreSQL из Delphi.
Первую фичу я обнаружил на методе AppendRecord . Оказывается, чтобы данный метод отработал успешно, нужно первым элементом списка ставить nil , иначе, при выполнении возникнет ошибка. Т.е. теперь AppendRecord будет выглядеть, например так: а не так, как делается, например, при работе с Interbase:
Вторая фича касается какой-то веселой ситуации, возникшей у меня один раз с сервером. По какой-то причине, тот отказывал в обслуживании клиентам. Похоже, это произошло потому, что в этот момент выполнялся какой-то процесс по обслуживанию базы данных на самом сервере.
Симптомом послужило то, что при обращении к PostgreSQL из программы на Deplhi, сама программа весилась намертво. При этом курсор принимал на экране характерную форму при выполнении SQL запроса. Однако этот запрос все продолжал выполняться и продолжал. Через 5 минут мне это надоело и я снял задачу принудительно.
Чем было вызвано зависание программы я даже не знаю. По идее должен был отработать тайм-аут по истечении которого, должна была появиться ошибка, но этого не случилось. Может виновата кривость BDE, может ODBC драйвера.
Вылечилось просто - на сервере был перезапущен PostgreSQL .
Настройка ODBC драйвера PostgreSQL
Диалоговое окно "Driver" в "Advanced Options"
-
Нажмите эту кнопку для восстановления настроек по умолчанию.
-
Автоматически выключает оптимизатор во время соединения. Это удобнее, чем выставлять специальную настройку в параметрах соединения. Данная особенность была добавлена, когда мы заметили, что сервер имеет проблемы при оптимизации некоторых запросов.
-
Данная особенность помогает определенным запросам отрабатываться на сервере не заваливая его. Некоторые приложения, например MS Jet Database Engine используют "keyset" запросы вида: Запросы такого типа будут приводить к заваливанию сервера без KSQO.
-
В данный файл происходит журналирование соединений с сервером. Его хорошо использовать для отладки.
-
Этот флаг управляет результатом вызова SQLStatistics() для уникальных индексов. По умолчанию он не установлен. Это позволяет Access 95 и Access 97 спрашивать пользователя об индексах во время соединения.
-
Новые источники данных будут наследовать состояние "Только для чтения".
-
Если флаг выставлен (по умолчанию это так), то драйвер автоматически использует создание курсора и fetch для управления операторами SELECT, оставляя 100 строк в кэше. В большинстве случаев это сильно помогает, когда вы заинтересованы только в чтении, а не в обновлении. Результаты не занимают много памяти для буферизации всего списка изменений. Если флаг сброшен, то курсор использоваться не будет, а драйвер будет выдавать все данные результата. Для очень больших таблиц, это очень плохо и может привести к тому, что будет использована вся память Windows. Однако, это может более лучшим образом управлять UPDATE, так как таблицы не остаются открытыми, как в случае использования курсора. Тем не менее, из-за более экономного расхода памяти, использование данного флага все равно дает лучшую производительность.
-
Если флаг выставлен, то драйвер будет анализировать операторы запроса SQL для определения колонок и таблиц, а также статистики о них, такой как точность, псевдонимы, нулевые записи и т.д. Все это можно получить через вызовы SQLDescribeCol, SQLColAttributes и SQLNumResultCols. Анализатор корректно определяет колонки, которые являются результатами выражений и функций, не взирая на сложность, но он не пытается определить типы данных или точность для этих колонок.
однако, когда я иду на панель управления ODBC и пытаюсь добавить пользовательский DSN, PostgreSQL не указан как сервер.
я следовал инструкциям, данным здесь, но я отметил ссылки датированы.
установка psqlODBC на 64bit Windows
хотя вы можете установить 32-разрядные драйверы ODBC на Win X64, как обычно, вы не можете настроить 32-разрядные DSNs через обычную панель управления или администратора источника данных ODBC.
Как настроить 32-битные драйверы ODBC на Win x64
настройка ODBC DSN из %SystemRoot%\syswow64\odbcad32.exe
- Пуск > Выполнить
- Enter: %SystemRoot%\syswow64\odbcad32.exe
- нажмите return.
- открыть ODBC и выберите на вкладке System DSN.
- Выберите PostgreSQL Unicode
возможно, Вам придется играть с ним и попробовать различные сценарии, думать вне коробки, помните, что это с открытым исходным кодом.
обратите внимание, что вы должны установить драйвер для версии вашего программного клиента(MS access), а не версии ОС. это означает,что если ваш MS Access является 32-разрядной версией, вы должны установить 32-разрядный драйвер odbc. с уважением
сначала вы скачать драйвер ODBC psqlodbc_09_01_0200-x64.zip, затем вы установили его.После этого перейдите в меню Пуск - >программа - >администрирование, затем выберите источник данных ODBC, затем дважды щелкните по тому же, после чего выберите PostgreSQL 30, затем выберите Настроить, затем укажите правильные данные, такие как имя пользователя db Id имя хоста пароль той же базы данных таким образом, вы настроите DSN-соединение.После этого вы проверите, что SSL должен быть разрешен .
вы перейдите на следующую вкладку System DSN, затем выберите Добавить tabthen выберите postgreSQL_ANSI_64X ODBC после того, как вы создали соединение PostgreSQL ODBC.
мне трудно понять, как я должен устанавливать драйвер JDBC для PostgreSQL на моем сервере debian 6.0. Я перевез водителя .jar в следующий каталог:
тогда учебники говорят об использовании этого кода:
однако, поскольку я новичок в postgreSQL, я понятия не имею, где я должен ставить эту строку, или если это даже правильно.
мой вопрос, за исключением перемещения файла jar в это место, что мне делать на самом деле нужно сделать, чтобы установить драйвер JDBC на мою установку postgreSQL?
EDIT: это моя настройка:
сервер 1: Tomcat + SOLR
сервер 2: PostgreSQL с драйвером JDBC
SOLR на сервере 1 запрашивает postgreSQL на сервере 2 через драйвер JDBC
лучше всего установить драйвер PostgreSQL в папку tomcat\lib. Просто скопируйте jar драйвера в PATH_TO_TOMCAT\lib
Не рекомендуется добавлять вещи в системный путь к классам, потому что вы можете закончить в классе loader hell. Вот пример того, как вы оказываетесь в аду jar / classpath.
- предположим, что текущее приложение использует postgres 9.1, и вы устанавливаете драйвер на системном пути к классам
- вы решили запустить другое приложение на этом поле, который говорит с новая версия Постгреса, допустим, версия 9.2
- поскольку вы используете приложение system classpath 2 в конечном итоге будет использовать старый драйвер, потому что системный classpath имеет тенденцию иметь приоритет над classpath приложений, если сценарий запуска приложения не устанавливает CLASSPATH="", чтобы очистить системный classpath или использует пользовательский загрузчик классов, который не выполняет загрузку родительского первого класса.
этот драйвер должен быть на вашем пути к классам. Вы можете использовать эту команду
или вы можете скопировать библиотеку в структуру проекта.
затем вы можете создавать соединения, как говорят учебники.
в вашей IDE (Idea, Eclipse и т. д.) Вам нужно добавить этот путь в качестве библиотеки.
кроме того, вы можете компилировать и выполнять из командной строки, Если вы определяете переменную CLASSPATH, которая включает это.
установить все пакеты:
чтобы установить среду Java для всех пользователей, добавьте / отредактируйте/etc / environment:
Примечание: если вы предпочитаете использовать postgresql-jdbc3, замените /usr/share/java/postgresql-jdbc4.jar с /usr / share / java / postgresql.Джар
проверьте соединение с помощью этого кода:
Примечание: изменение базы данных, пользователя и passwrod с вашей конфигурацией
Читайте также: