2016-09-21 87 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。 –