【发布时间】:2012-03-27 04:48:36
【问题描述】:
我正在使用 cakephp 2.0 和 wamp 服务器。我在 php 中启用了 postgres 的 pdo,并尝试连接到 Postgres。但是它仍然说有一个错误。我的登录名和密码也被双重确认。
下面是database.php文件的代码:
public $default = array(
'datasource' => 'Database/Postgres',
'persistent' => false,
'host' => 'localhost',
'port' => '5432',
'login' => 'postgres',
'password' => 'password',
'database' => 'Test',
'schema' => '',
'prefix' => '',
'encoding' => ''
);
我什至试过这个:
公共 $default = 数组( '数据源' => '数据库/Postgres', '持久' => 假, '主机' => '本地主机', '端口' => '5432', '登录' => 'postgres', '密码' => '密码', '数据库' => '测试', '模式' => '公共', '前缀' => '', '编码' => '' );我的 pga_hba.config 文件是:
类型数据库用户 CIDR-地址方法 # IPv4 本地连接: 托管所有 127.0.0.1/32 md5 # IPv6 本地连接: 托管所有::1/128 md5在 C:\wamp\bin\php\php5.3.9\ext
两个都有:
php_pdo_pgsql.dll php_pdo_sqlite.dll我的配置 Postgres 配置文件是:
listen_addresses = '*' # 要监听的 IP 地址; # 逗号分隔的地址列表; # 默认为 'localhost', '*' = all #(更改需要重启) port = 5432 #(更改需要重启) max_connections = 100 #(更改需要重启) # 注意:增加 max_connections 每增加约 400 字节的共享内存 # 连接槽,加上锁空间(见 max_locks_per_transaction)。 #superuser_reserved_connections = 3 #(更改需要重启) #unix_socket_directory = '' #(更改需要重启) #unix_socket_group = '' #(更改需要重启) #unix_socket_permissions = 0777 # 以 0 开头以使用八进制表示法 #(更改需要重启) #bonjour_name = '' # 默认为计算机名 #(更改需要重启)我检查了 php 信息,但我仍然发现 pgsql 不存在。我正在使用 wamp 服务器。
[PostgresSQL] ;允许或阻止持久链接。 ; http://php.net/pgsql.allow-persistent pgsql.allow_persistent = On ;始终使用 pg_pconnect() 检测断开的持久链接。 ;自动重置功能需要一点开销。 ; http://php.net/pgsql.auto-reset-persistent pgsql.auto_reset_persistent = 关闭 ;最大永久链接数。 -1 表示没有限制。 ; http://php.net/pgsql.max-persistent pgsql.max_persistent = -1 ;最大链接数(持久+非持久)。 -1 表示没有限制。 ; http://php.net/pgsql.max-links pgsql.max_links = -1 ;是否忽略 PostgreSQL 后端通知消息。 ;注意消息记录需要一些开销。 ; http://php.net/pgsql.ignore-notice pgsql.ignore_notice = 0 ;是否记录 PostgreSQL 后端 Noitce 消息。 ;除非 pgsql.ignore_notice=0,否则模块无法记录通知消息。 ; http://php.net/pgsql.log-notice pgsql.log_notice = 0我已经在我的 php.ini 文件中这样做了:
扩展=php_pdo_pgsql.dll 扩展=php_pdo_sqlite.dll 扩展=php_pgsql.dll【问题讨论】:
-
与往常一样,错误消息将有助于帮助您。
标签: php postgresql cakephp cakephp-2.0