core/Loader.php 中的数据库错误 -- postgresql + codeigniter
Posted
技术标签:
【中文标题】core/Loader.php 中的数据库错误 -- postgresql + codeigniter【英文标题】:Database error in core/Loader.php -- postgresql + codeigniter 【发布时间】:2013-07-15 04:46:45 【问题描述】:我收到以下错误:
Unable to connect to your database server using the provided settings.
Filename: core/Loader.php
Line Number: 346
我的 database.php 是:
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'usertest';
$db['default']['password'] = '';
$db['default']['database'] = 'usertest';
$db['default']['port'] = '5433';
$db['default']['dbdriver'] = 'postgre';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
什么是可能的解决方案。我不想 $db['default']['db_debug'] = FALSE; 即使这样做了,我仍然无法连接到数据库。
编辑: 把端口改成5432了,还是不行
【问题讨论】:
你确定 postgres 在端口 5433 上吗?从命令行尝试telnet localhost 5433
,看看是否出现空白屏幕。
同样的问题,Posgres 的默认端口是 5432。
"postgre"?我认为你错过了一个 s
【参考方案1】:
试试:
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = FALSE;
【讨论】:
【参考方案2】:某些数据库驱动程序(例如 PDO、PostgreSQL、Oracle、ODBC)可能 需要提供完整的 DSN 字符串。如果是这种情况,你 应该使用“dsn”配置设置,就好像您正在使用 驱动的底层原生 PHP 扩展,如下所示:
$db['default']['dsn'] = 'pgsql:host=localhost;port=5432;dbname=database_name';
from official documentation of codeigniter
【讨论】:
【参考方案3】:设置Set $db['default']['pconnect'] = FALSE;
并再次检查。
【讨论】:
【参考方案4】:检查您的数据库驱动程序名称。我很确定它是“postgres”而不是“postgre”。
【讨论】:
以上是关于core/Loader.php 中的数据库错误 -- postgresql + codeigniter的主要内容,如果未能解决你的问题,请参考以下文章