PDO不适用于CakePHP安装

PDO不适用于CakePHP安装,php,cakephp,pdo,mamp,Php,Cakephp,Pdo,Mamp,我正在配置一个cakePHP应用程序,但该应用程序似乎没有成功连接到DB,我遇到以下错误: Cake is NOT able to connect to the database. Database connection "Mysql" is missing, or could not be created. Error !: could not find driver 我将database.php.default重命名为database.php,代码如下: class DATABASE_

我正在配置一个cakePHP应用程序,但该应用程序似乎没有成功连接到DB,我遇到以下错误:

Cake is NOT able to connect to the database.

Database connection "Mysql" is missing, or could not be created.
Error !: could not find driver
我将database.php.default重命名为database.php,代码如下:

class DATABASE_CONFIG {

    public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost:8889',
        'login' => 'root',
        'password' => 'root',
        'database' => 'cakephpdb',
        'prefix' => '',
        'encoding' => 'utf8',
    );
}
事实上,我知道CakePHP使用PDO驱动程序连接到DB,所以我尝试运行一个单独的文件来测试PDO是否正确:

<?php

var_dump( extension_loaded('pdo_mysql') );

?> 
我尝试在php.ini文件中启用PDO:

已重新启动MAMP,但cakePHP应用程序仍然存在相同的错误。我错过什么了吗?如何确保在您的案例中启用PDO?提前准备好

编辑:

运行phpinfo时,未启用PDO_MySQL:

根据phpinfo输出,php.ini路径如下:

/Applications/MAMP/bin/php/php5.4.10/conf 
因此,我尝试在该路径编辑php.ini文件,以下是相关设置:

    extension=imap.so
    extension=yaz.so
    extension=mcrypt.so
    extension=gettext.so
    extension=pgsql.so
    extension=pdo_pgsql.so
    extension=pdo_mysql.so

pdo_mysql.default_socket=/tmp/mysql.sock

mysql.default_socket = /tmp/mysql.sock
此外,我还尝试在php脚本中测试DB连接:

try {
    $dbh = new PDO('mysql:host=localhost;dbname=db_name', 'localhost', 'root');
    echo '<br /> success';
} catch (PDOException $e) {
    print "Error !: " . $e->getMessage() . "<br/>";


    die();
}

因此没有加载PDO_Mysql驱动程序,这在phpinfo输出中是清楚的。您是否已确认是否正在更新正确的php.ini?对于XAMPP,控制台有一个php.ini,Web服务器有一个php.ini。您可能更新了不正确的版本。

关于CakePHP、MySQL、PDO等,有很多问题/答案。你已经读过了吗?首先确保Pdo现在真的启用了-检查浏览器中phpinfo的输出。接下来,使用PDO和数据库设置编写一个简单的脚本,您可以从手册中获得复制/粘贴代码。在确保设置正常工作且PDO安装正确后,CakePHP是否仍然无法使用?您好,谢谢回复,我编辑了我的帖子,以了解有关php.ini文件上实际配置设置的更多详细信息。我尝试了stackoverflow上类似线程的所有建议,但都没有解决我的问题。在进行更改后是否重新启动了Apache?您是否验证了pdo_mysql.so确实存在?此外,检查各种日志文件,可能存在pdo_mysql.so,但未针对您的体系结构进行编译,例如未针对64位进行编译。重新启动Apache时,最好先“停止”它,然后检查所有Apache httpd进程是否真的停止。有时进程可能会继续运行,然后再重新启动。是的,pdo_mysql.so文件位于bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525路径中。而且,我重新启动了MAMP,我甚至重新启动了我的Mac。
try {
    $dbh = new PDO('mysql:host=localhost;dbname=db_name', 'localhost', 'root');
    echo '<br /> success';
} catch (PDOException $e) {
    print "Error !: " . $e->getMessage() . "<br/>";


    die();
}
Error !: could not find driver