2016-09-21 34 views
6

我正在嘗試使用Codeigniter框架連接到PostgreSQL。 現在在我的database.php中如何連接到Codeigniter 3中的POSTGRESQL?

我有以下代碼:

$active_group = 'default'; 
$query_builder = TRUE; 

$db['default'] = array(
    'dsn' => '', 
    'hostname' => 'localhost', 
    'username' => 'postgres', 
    'password' => '', 
    'database' => 'fmsdb', 
    'dbdriver' => 'postgre', 
    'dbprefix' => '', 
    'pconnect' => FALSE, 
    'db_debug' => (ENVIRONMENT !== 'production'), 
    'cache_on' => FALSE, 
    'cachedir' => '', 
    'char_set' => 'utf8', 
    'dbcollat' => 'utf8_general_ci', 
    'swap_pre' => '', 
    'encrypt' => FALSE, 
    'compress' => FALSE, 
    'stricton' => FALSE, 
    'failover' => array(), 
    'save_queries' => TRUE 
); 

但是當我在本地主機上運行我的地盤,我獲得以下數據庫錯誤:

一個PHP錯誤遇到了

嚴重性:警告

消息:pg_connect():無法連接到PostgreSQL服務器:could 未連接到服務器:權限被拒絕在主機 「localhost」(:: 1)上運行的服務器是否在端口5432上接受TCP/IP連接?可能 未連接到服務器:權限被拒絕服務器在主機 「localhost」(127.0.0.1)上運行並且接受端口5432上的TCP/IP連接?

文件名:postgre/postgre_driver.php

行號:154

我試圖把這個在我的postgresql.conf文件:

listen_addresses = '*' 

我要去哪裏錯了?

+0

這將幫助:http://stackoverflow.com/questions/29630851/connecting-postgresql-and-codeigniter – devpro

+0

添加PostgreSQL的端口'$ DB [ '默認'] [ '口'] = 5432;也'啓用了PHP ini的分機。 '延長= php_pdo_pgsql。dll' – devpro

+0

如何在centos7中啓用此擴展功能 – Rajan

回答

5

首先使Postgresql擴展在php.ini

extension=php_pgsql.dll

您還可以啓用Postgresql擴展PDO爲好。

extension=php_pdo_pgsql.dll


$db['default'] = array(
    'port' => 5432, # Add 
); 

OR

$db['default'] = array(
    'dsn' => 'pgsql:host=localhost;port=5432;dbname=database_name', 
    'dbdriver' => 'pdo', 
); 

Database-configuration in codeigniter.com

+0

我認爲我的pgsql已經加載,因爲我已經安裝phpPGAdmin並且它的工作正常 – Rajan

+0

u也可以建議重新啓動APACHE,這對其他人很有幫助。我認爲。 :) – devpro

1
  1. 首先使這兩個擴展

    extension=php_pgsql.dll 
    extension=php_pdo_pgsql.dll 
    
  2. 然後重新啓動Apache
  3. 在database.php中添加文件$ DB [ '默認'] [ '口'] = 5432與所有其他代碼。
+0

我使用的是centos 7這些設置是否一樣? – Rajan

+0

我想我的pgsql已經加載,因爲我已經安裝了phpPGAdmin並且其工作正常 – Rajan

+0

檢查你的phpinfo。如果pdo_pgsql&pgsql可用,那麼我認爲不會有錯誤。如果沒有運行yum list「php *」for available php packages。在這裏你可以找到像php5-pgsql/php-pdo_pgsql/php-pgsql這樣的軟件包。然後運行安裝軟件包yum install php-pgsql&yum install php-pdo_pgsql。然後重新啓動Apache。 –