开发者

Cake is NOT able to connect to the database

I am using Wamp server and I'm trying to install CakePHP 2.0.0 but I'm having trouble with it.

I put the CakePHP 2.0.0 files in my wamp server folder "www" and then "cake" folder.

When I enter address http://localhost/cake in my browser then following message is displayed:

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.


I had the same problem and it took a lot of researching to determine the actual problem.

The new version of CakePHP uses pdo to establish a connection rather than mysql or mysqli as it did previously. As you are using a Windows environment, just enable the following in php.ini file.

extension=php_pdo_mysql.dll

NOTHING to do with using root and I also found it an real annoyance when trying to move from 1.3 to 2.0

As for the arrogant answer from deceze, I found NO mention of this change anywhere on the CakePHP download / install / docs.


I can't upvote due to a lack of reputation, however I'd like to point out that despite the comments under your question (which, in part, are correct), George Wood is exactly correct: you need to enable

extension=php_pdo_mysql.dll (Windows)

or for me it was extension=pdo_mysql.so (Arch Linux)

...and there may be some variants out there too. I've just struggled with this for an hour. Best of luck with your coding efforts.


My problem with cakephp was solved on Ubuntu by doing this:

sudo apt-get install php5-mysql

sudo /etc/init.d/apache2 restart

I'm using Ubuntu 10.04, MySQL, Apache2 and PHP5.

Once I did that I could use the MySQL user I created. So it wasn't a cakephp config error it was not knowing php5-mysql was not installed by default.


They are NOT errors, they are notices. This means you can do some configurations in order to make it work. Read over them and do what they tell you to do. Seems like errors happen in your config/, watch out to provide correct information such as database's name and password.

Edit

Just to answer your question, CakePHP is a PHP framework that assist you with constructing your website in MVC model. Instead writing source code from scratch, by using framework, you can inherit all its functionality that speed up your development time, help you to deal with more-complex structure/procedures more easily.


If you haven't still solved the connection issue with database, try doing a sanity check on these bits..

  • 'driver' (ok in 1.3) has been renamed to 'datasource'
  • 'mysql' (ok in 1.3) has to be specified as 'Database/Mysql'

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

Let me know if this worked. (I was trying to reuse my old 1.3 config and got caught in the same loop.)


Please find solution as shown below.

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]

Solution: Go thorough this file app/config/core.php find Security.salt and change it to any value.

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]

Solution: Go thorough this file app/config/core.php find Security.cipherSeed and change it to any value.

Your tmp directory is writable.

Solution: Give proper permission for this path app/tmp

Cake is NOT able to connect to the database.

Solution: Go thorough this file app/config/database.php set proper parameters for database connection.


Just adding this in here... I came across this (and other similar solutions) but only recently found the problem. I had an issue with my custom Apache build due to other software issues and decided to quickly get a working environment rather than reformat my PC.

I first installed Apache 2.4 and PHP 5.4. These versions were unfortunately incompatible with most of my code, and again, I wanted to quickly get a working environment, so I uninstalled and went back to WAMP with Apache 2.2 and PHP 5.3.

At some point, WAMPServer was looking at C:\Program Files (x86)\PHP\php.ini for my php.ini file. I do not know how or why it was looking there. Unfortunately I was editing C:\wamp\bin\php\php5.3.13\php.ini instead. I didn't realize why MySQL wasn't working until I loaded up a call to phpinfo() and noticed PHP was looking in the "wrong" place for my php.ini.

In case anyone else has a similar issue, I figured I'd add it here to the mix. Good luck!


I had the same problem and I figured it out.

I had the wrong username and password for database connection.

So I opened database and edited the database.php file. Now cake is able to connect to the database.


Recently I had the same problem with xampp installed on a windows machine, for me it was because when entering the details

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

windows could not resolve localhost to being 127.0.0.1, this can be solved by one of either solutions: Change details in app/Config/database.php to

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

Or edit in windows C:\Windows\System32\drivers\etc\hosts (You may need to run Nopepad.exe as administrator to do this)

add a line at the end with:

127.0.0.1 localhost


I solved this error by downgrading my xampp from version 7.0 to version 5.6. Seems that the updated xampp doesn't support the cakeframework perfectly. I used this trick to also succesfully install orangescrum.


On local host for mysql, it is compulsory to use the user "root" rather than any other user. Hope this helps.

Also check this.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜