Cake无法连接到数据库

时间:2011-06-02 08:44:50

标签: php cakephp

我正在使用Wamp服务器而我正在尝试安装CakePHP 2.0.0,但我遇到了麻烦。

我将CakePHP 2.0.0文件放在我的wamp服务器文件夹“www”中,然后放在“cake”文件夹中。

当我在浏览器中输入地址http://localhost/cake时,会显示以下消息:

CakePHP: the rapid development php framework
Release Notes for CakePHP 2.0.0-dev.

Notice (1024): Please change the value of 'Security.salt' in app/config/core.php to a salt value specific to your application [CORE\Cake\Utility\Debugger.php, line 647]

Notice (1024): Please change the value of 'Security.cipherSeed' in app/config/core.php to a numeric (digits only) seed value specific to your application [CORE\Cake\Utility\Debugger.php, line 651]

Your tmp directory is writable.

The FileEngine is being used for caching. To change the config edit APP/config/core.php

Your database configuration file is present.

Cake is NOT able to connect to the database.
Editing this Page

To change the content of this page, create: APP/views/pages/home.ctp.
To change its layout, create: APP/views/layouts/default.ctp.
You can also add some CSS styles for your pages at: APP/webroot/css.

11 个答案:

答案 0 :(得分:13)

我遇到了同样的问题,需要进行大量研究才能确定实际问题。

CakePHP的新版本使用pdo建立连接,而不是像之前那样建立mysql或mysqli。在使用Windows环境时,只需在php.ini文件中启用以下内容。

延长= php_pdo_mysql.dll

没有使用root,我也发现在尝试从1.3移动到2.0时真的很烦恼

至于deceze的傲慢回答,我在CakePHP下载/安装/文档的任何地方都没有发现这种变化。

答案 1 :(得分:6)

由于缺乏声誉我不能投票,但是我想指出,尽管你的问题(部分是正确的)评论,George Wood完全正确:你需要启用

extension = php_pdo_mysql.dll(Windows)

或者对我而言,它是extension = pdo_mysql.so(Arch Linux)

......也可能有一些变种。我刚刚和这个人争吵了一个小时。祝你的编码工作顺利。

答案 2 :(得分:4)

我对Cakephp的问题在Ubuntu上解决了这个问题:

sudo apt-get install php5-mysql

sudo /etc/init.d/apache2 restart

我正在使用Ubuntu 10.04,MySQL,Apache2和PHP5。

一旦我这样做,我就可以使用我创建的MySQL用户。所以它不是一个cakephp配置错误,它不知道默认情况下没有安装php5-mysql。

答案 3 :(得分:3)

它们不是错误,它们是通知。这意味着您可以执行一些配置以使其工作。阅读他们并做他们告诉你的事情。好像config/中发生了错误,请注意提供正确的信息,例如数据库的名称和密码。

修改

回答你的问题,CakePHP是一个PHP框架,可以帮助你在MVC模型中构建你的网站。相反,通过使用框架从头开始编写源代码,您可以继承其所有功能,从而加快开发时间,帮助您更轻松地处理更复杂的结构/过程。

答案 4 :(得分:1)

如果您还没有解决数据库的连接问题,请尝试对这些位进行完整性检查..

  • 'driver'(确定在1.3中)已重命名为'datasource'
  • 'mysql'(在1.3中确定)必须指定为'Database / Mysql'

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

如果有效,请告诉我。 (我试图重用我原来的1.3配置并陷入同一个循环。)

答案 5 :(得分:0)

请找到如下所示的解决方案。

注意(1024):请将app / config / core.php中'Security.salt'的值更改为特定于您的应用程序的盐值[CORE \ Cake \ Utility \ Debugger.php,第647行]

解决方案:彻底查看此文件app / config / core.php       找到Security.salt并将其更改为任何值。

注意(1024):请将app / config / core.php中'Security.cipherSeed'的值更改为特定于应用程序的数字(仅数字)种子值[CORE \ Cake \ Utility \ Debugger.php,第651行]

解决方案:彻底查看此文件app / config / core.php       找到Security.cipherSeed并将其更改为任何值。

您的tmp目录是可写的。

解决方案:为此路径app / tmp

授予适当的权限

Cake无法连接到数据库。

解决方案:仔细阅读此文件app / config / database.php 为数据库连接设置适当的参数。

答案 6 :(得分:0)

在这里添加这个...我遇到了这个(和其他类似的解决方案),但最近才发现问题。由于其他软件问题,我的自定义Apache构建存在问题,并决定快速获得工作环境,而不是重新格式化我的PC。

我首先安装了Apache 2.4和PHP 5.4。遗憾的是,这些版本与我的大多数代码都不兼容,而且,我想快速获得一个工作环境,所以我卸载并使用Apache 2.2和PHP 5.3重新启动WAMP。

在某些时候,WAMPServer正在查看我的php.ini文件的C:\ Program Files(x86)\ PHP \ php.ini。我不知道它是怎么或为什么看那里。不幸的是我正在编辑C:\ wamp \ bin \ php \ php5.3.13 \ php.ini。我没有意识到为什么MySQL没有工作,直到我加载了对phpinfo()的调用,并注意到PHP正在查找我的php.ini的“错误”位置。

如果其他人有类似的问题,我想我会在这里添加它。祝你好运!

答案 7 :(得分:0)

我有同样的问题,我想出来了。

我有错误的用户名密码用于数据库连接。

所以我打开了数据库并编辑了database.php文件。现在,cake可以连接到数据库了。

答案 8 :(得分:0)

最近我在Windows机器上安装xampp遇到了同样的问题,对我来说这是因为输入细节时

public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',

windows无法将localhost解析为127.0.0.1,这可以通过以下任一解决方案解决: 将app / Config / database.php中的详细信息更改为

public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => '127.0.0.1',

或在Windows C:\ Windows \ System32 \ drivers \ etc \ hosts中编辑(您可能需要以管理员身份运行Nopepad.exe才能执行此操作)

在最后添加一行:

127.0.0.1 localhost

答案 9 :(得分:0)

我通过将xampp从7.0版降级到5.6版来解决了这个错误。似乎更新的xampp不完美支持cakeframework。我用这个技巧也成功安装了orangescrum。

答案 10 :(得分:-2)

在mysql的本地主机上,必须使用用户“root”而不是任何其他用户。希望这会有所帮助。

同时检查this