【问题标题】:CakePHP is NOT able to connect to the databaseCakePHP 无法连接到数据库
【发布时间】:2014-03-06 10:10:54
【问题描述】:

我想学习 cakePHP,一切都配置正确,除了后面的黄色问题。

'CakePHP 无法连接到数据库。 数据库连接“Mysql”丢失,或无法创建。'

我浏览了谷歌并尝试了一切来解决这个问题,但没有一个成功。 设置了扩展 php_pdo_mysql,我也可以使用 phpMyAdmin 连接到我的数据库,我尝试使用以下代码测试我的连接,其中连接正常并加载了扩展 pdo_mysql。

<?php 
$link = mysql_connect('localhost','root',''); 
if (!$link) { 
    die('Could not connect to MySQL: ' . mysql_error()); 
} 
echo 'Connection OK'; mysql_close($link); 
var_dump( extension_loaded('pdo_mysql') );
?> 

app/Config 下的 database.php 文件如下:(注意:我在主机名上尝试了 localhost 也没有成功)

class DATABASE_CONFIG {

    public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => '127.0.0.1',
        'login' => 'root',
        'password' => '',
        'database' => 'database_name',
        'prefix' => '',
        //'encoding' => 'utf8',
    );

    public $test = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => '127.0.0.1',
        'login' => 'root',
        'password' => '',
        'database' => 'test_database_name',
        'prefix' => '',
        //'encoding' => 'utf8',
    );
}

我正在使用的服务器是 wamp 并且运行良好,我的意思是它的状态上的所有内容都是绿色的。

拜托,有人能帮帮我吗?!

【问题讨论】:

  • 你在设置数据库名吗?
  • 你在上面提到的文件上设置了用户名和密码吗?
  • Guillemo Mansilla 说数据库的时候,我决定通过phpMyAdmin创建,问题就解决了。我认为 cakePHP 曾经为我创建初始数据库,如果它不存在的话。
  • 我正在设置数据库,我只是没有创建它,因为我认为 cake 能够为我创建它。

标签: mysql database cakephp


【解决方案1】:

我遇到了同样的问题。 我为自己找到了解决方案。

在我的情况下,CackPHP 找不到任何扩展,因为我搞砸了指定 extension_dir 路径。

在定义扩展之前,我刚刚在我的 php.ini 文件中添加了以下行。

extension_dir = "C:/php/ext" (你可能有不同的路径)

并重新启动我的 apache 服务器。

【讨论】:

    【解决方案2】:

    解决方案就是在你的 database.php 文件中指定密码:'password' => 'root',

    【讨论】:

      【解决方案3】:

      您必须检查 默认数据库 中的几项内容,即 public $default 数组。

      首先,将 'host' 从 '127.0.0.0' 更改为 'localhost' [我知道确实没有任何区别,不过,试试看会发生什么]

      'host' => '127.0.0.1:3306',
      

      接下来,检查您的数据库名称是否正确并与您的 MySQL 数据库匹配。

      'database' => 'database_name',
      

      如果您的 MySQL 数据库名称是其他名称,那么您将收到您在代码中提到的错误。例如,如果你的 MySQL 数据库名称是 'test_db',你必须这样写:

      'database' => 'test_db',
      

      记住,在您的默认数据库中进行所有这些更改。

      【讨论】:

        【解决方案4】:

        根据this page,您必须确保在 PHP 中启用了pdo_mysql

        编辑文件php.ini,并取消注释:

        extension=php_pdo_mysql.dll
        

        【讨论】:

          【解决方案5】:

          尝试在database.php存档中添加端口。像这样:

          'host' => '127.0.0.1:3306',
          

          为我工作。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-10-16
            • 1970-01-01
            • 2019-01-07
            • 2023-04-02
            • 2011-06-16
            相关资源
            最近更新 更多