Соединение cakephp 2.0 с PostgreSQL - PullRequest
0 голосов
/ 09 марта 2012

Я использую cakephp 2.0 и Wamp-сервер. Я включил pdo postgres в php и попытался подключиться к Postgres. Однако это все еще говорит, что есть ошибка. Мой логин и пароль также подтверждены дважды.

Ниже приведены коды для файла database.php:

public $default = array(
  'datasource' => 'Database/Postgres',
  'persistent' => false,
  'host' => 'localhost',
  'port' => '5432',
  'login' => 'postgres',
  'password' => 'password',
  'database' => 'Test',
  'schema' => '',
  'prefix' => '',
  'encoding' => ''
 );

Я даже попробовал это:

public $default = array(
    'datasource' => 'Database/Postgres',
    'persistent' => false,
    'host' => 'localhost',
    'port' => '5432',
    'login' => 'postgres',
    'password' => 'password',
    'database' => 'Test',
    'schema' => 'public',
    'prefix' => '',
    'encoding' => ''
  );

Мой файл pga_hba.config:

 TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5

В C: \ wamp \ bin \ php \ php5.3.9 \ ext

У меня есть оба:

php_pdo_pgsql.dll
php_pdo_sqlite.dll

Моя конфигурация Файл конфигурации Postgres:

listen_addresses = '*'      # what IP address(es) to listen on;
                    # comma-separated list of addresses;
                    # defaults to 'localhost', '*' = all
                    # (change requires restart)
port = 5432             # (change requires restart)
max_connections = 100           # (change requires restart)
# Note:  Increasing max_connections costs ~400 bytes of shared memory per 
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directory = ''     # (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation
                    # (change requires restart)
#bonjour_name = ''          # defaults to the computer name
                    # (change requires restart)

Я проверяю информацию php и все еще обнаружил, что pgsql там не было. Я использую Wamp-сервер.

[PostgresSQL]
; Allow or prevent persistent links.
; http://php.net/pgsql.allow-persistent
pgsql.allow_persistent = On

; Detect broken persistent links always with pg_pconnect().
; Auto reset feature requires a little overheads.
; http://php.net/pgsql.auto-reset-persistent
pgsql.auto_reset_persistent = Off

; Maximum number of persistent links.  -1 means no limit.
; http://php.net/pgsql.max-persistent
pgsql.max_persistent = -1

; Maximum number of links (persistent+non persistent).  -1 means no limit.
; http://php.net/pgsql.max-links
pgsql.max_links = -1

; Ignore PostgreSQL backends Notice message or not.
; Notice message logging require a little overheads.
; http://php.net/pgsql.ignore-notice
pgsql.ignore_notice = 0

; Log PostgreSQL backends Noitce message or not.
; Unless pgsql.ignore_notice=0, module cannot log notice message.
; http://php.net/pgsql.log-notice
pgsql.log_notice = 0

Я уже сделал это в своем файле php.ini:

extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pgsql.dll

Ответы [ 2 ]

2 голосов
/ 09 марта 2012

Выстрел в темноте: имя базы данных Test или test? Идентификаторы без кавычек приводятся к нижнему регистру в PostgreSQL. Руководство по этому поводу .

Следующий снимок в темноте: вы подключаетесь к localhost. Это не локальное соединение через доменный сокет Unix. Чтобы это работало, база данных должна быть настроена на прослушивание соединений TCP / IP. Так что вам нужно в вашем postgresql.conf:

listen_addresses = '*'

.. и перезапустите.

Кроме того, ваши pg_hba.conf настройки должны разрешать соединение. Может быть проблема похожая на эту .
Начните с прочтения главы Настройки соединения в прекрасном руководстве.

Но я уже догадался. Вам нужно , чтобы предоставить сообщение об ошибке.

1 голос
/ 09 марта 2012

Я нашел ответ на свою проблему. Этот парень очень полезен

http://tutology.net/category/mysql/install-postgresql-and-phppgadmin-windows-wamp

В основном я скопировал libpq.dll из wamp \ bin \ php \ phpX.XX в wamp \бен \ Apache \ ApacheX.X.XX \ Bin

...