我正在配置一个 cakePHP 应用程序,但该应用程序似乎没有成功连接到数据库,我收到以下错误:
Cake is NOT able to connect to the database.
Database connection "Mysql" is missing, or could not be created.
我将其重命名为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') );
?>
这是错误的:
bool(false)
我试图在php.ini
文件中启用 PDO:
extension=php_pdo_mysql.so
重新启动 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 脚本中测试数据库连接:
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
所以PDO_Mysql
驱动程序没有加载,这从 phpinfo() 输出中很清楚。出来解决这个问题?