【问题标题】:Not able to connect PostgreSQL with Yii无法将 PostgreSQL 与 Yii 连接起来
【发布时间】:2012-10-19 15:11:01
【问题描述】:

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

CDbConnection 未能打开数据库连接。

在日志中显示

error   exception.CDbException  

找不到驱动程序

我的代码

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

【问题讨论】:

  • 您是否尝试通过控制台应用程序连接?
  • 您确定连接正常吗?也许尝试一个“普通”的 PHP 连接,看看它是否首先工作
  • 什么都试过了,还是不行.... apache httpd.conf 文件中有什么要编辑的吗?

标签: postgresql yii


【解决方案1】:

Yii 数据库组件建立在 PHP PDO 之上。所以这里是要检查的可能性列表

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

下面是一些可能相似的链接

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

PDOException “could not find driver”

在 Linux (Ubuntu/Debian) 上安装 PDO

Install pdo for postgres Ubuntu

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

Windows

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

【讨论】:

  • 在我的 phpinfo() 中...没有为 postgressql 启用 pdo 支持。它适用于 mysql 和 sqlite。我该如何解决这个问题
  • 感谢您提供所有这些链接....尝试了所有方法,但问题已通过以下步骤解决...
【解决方案2】:

已解决问题...通过添加

LoadFile "C:/wamp/bin/php/php5.3.5/libpq.dll"

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

谢谢...

【讨论】:

  • 这实际上是个坏方法。任何将覆盖配置的升级都将导致您需要重新编写配置文件。如果您在 Windows 上阅读我的第一个链接,那里有更好的方法。您应该已经遵循并接受了我的回答 :) 在这里我引用“PHP 扩展将查找在您的 PostgreSQL 安装中找到的 libpq.dll。简单的解决方法是添加路径而不是包含该路径文件到您的环境 PATH。这是我采取的步骤。"
  • 所以只需将 C:/wamp/bin/php/php5.3.5/ 添加到您的系统路径变量中,重新启动您的机器(如果需要),您就完成了!
【解决方案3】:

如果您在 ubuntu 中工作,请确保您已安装 pgsql 库

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

确保在控制台和主本地有这个数组之后

'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',
    ],],

【讨论】:

    【解决方案4】:

    就我而言,这是在 WAMP 中启用 php_pdo_pgsql 扩展的情况

    【讨论】:

      【解决方案5】:

      对于那些在同一个问题上苦苦挣扎的人,我做了解决。 环境 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”删除;如果注释掉 NB 你可以指向绝对路径“/usr/lib/php/pdo_pgsql.so”如果它存在的话
      3. 重启 Lamp apache 服务器
      4. 访问requirements.php,如果您看到“”PDO PostgreSQL 扩展通过 PostgreSQL 数据库需要所有与DB 相关的类。”

      【讨论】:

        猜你喜欢
        • 2012-03-10
        • 1970-01-01
        • 2013-05-10
        • 2020-03-14
        • 2014-12-05
        • 2020-04-02
        • 1970-01-01
        • 2015-02-28
        • 2011-07-26
        相关资源
        最近更新 更多