我正在配置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是否为false:
<?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()输出中可以清楚地看到。出来解决这个问题?
答案 0 :(得分:0)
您确认是否正在更新正确的php.ini吗?对于XAMPP,控制台有一个php.ini,网络服务器有另一个。您可能正在更新不正确的。