无法将PostgreSQL与Yii连接

时间:2012-10-30 09:44:40

标签: postgresql yii

我试图将PostgreSQL与Yii连接,但正在显示

CDbConnection无法打开数据库连接。

在日志中显示

error   exception.CDbException  

无法找到驱动程序

我的代码

'db'=>array(
    'tablePrefix'=>'',
    'connectionString' => 'pgsql:host=localhost;port=5432;dbname=postgres',
    'username'=>'postgres',
    'password'=>'postgres',
    'charset'=>'UTF8',
),

5 个答案:

答案 0 :(得分:2)

Yii数据库组件构建于PHP PDO之上。以下是要检查的可能性列表

检查PostgreSQL和PostgreSQL的PDO扩展是否已安装并正常工作。该港口也是正确的。您可以测试简单的PHP Script to test

以下是可能类似的内容的链接

PostgreSql 'PDOException' with message 'could not find driver'

PDOException “could not find driver”

在Linux上安装PDO(Ubuntu / Debian)

Install pdo for postgres Ubuntu

https://serverfault.com/questions/89970/how-to-install-postgresql-extension-for-pdo-in-linux

<强>窗

http://blog.lysender.com/2010/08/php-and-postgresql-on-windows/

Apache php 5.3 postgreSQL driver could not be loaded

有关问题的官方PHP信息

http://php.net/manual/en/pdo.installation.php

http://www.php.net/manual/en/ref.pdo-pgsql.php

答案 1 :(得分:1)

通过添加

解决了问题
LoadFile "C:/wamp/bin/php/php5.3.5/libpq.dll"

到httpd.conf文件。现在phpinfo()正在显示pgsql PDO。

感谢...

答案 2 :(得分:1)

如果你在ubuntu工作,请确保你已经安装了pgsql库

sudo apt-get install php-pgsql
sudo service apache2 restart

确保在控制台和main-local中有这个数组

'components' => [
    'log' => [
        'targets' => [
            [
                'class' => 'yii\log\FileTarget',
                'levels' => ['error', 'warning'],
            ],
        ],
    ],
    'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'pgsql:host=localhost;port=5432;dbname=yourdb',
        'username' => 'user',
        'password' => 'pw',
        'charset' => 'utf8',
    ],],

答案 3 :(得分:0)

就我而言,这是在WAMP中启用php_pdo_pgsql扩展名

的情况

答案 4 :(得分:0)

对于那些遇到同样问题的人,我做了相关工作。 环境 Yii2 服务器:LAMP协议栈7.1 问题找不到驱动程序,即“ requirements.php”显示警告 “ PDO PostgreSQL扩展警告PostgreSQL数据库需要所有与DB相关的类。” 我注意到pdo_pgsql.so没有与bitnami打包在一起,所以我在线搜索它或尝试查找是否已安装在/ usr / lib / php

中的任何php版本上
  1. 将该文件复制到lampstack-7.1.10-1 / php / lib / php / extensions。
  2. 现在转到lampstack php.ini“ lampstack-7.1.10-1 / php / etc / php.ini” 现在将这一行“ extension = pdo_pgsql.so”删除;如果将其注释掉,则可以指向绝对路径“ /usr/lib/php/pdo_pgsql.so”
  3. 重新启动Lamp apache服务器
  4. 访问requirement.php,如果看到““ PDO PostgreSQL扩展已通过,则PostgreSQL数据库需要的所有与数据库相关的类。”