2015-05-14 57 views
2

我试图启动CakePHP。我制作了书签并通过命令bin\cake server进行了测试。这表明一个错误的连接到数据库无法建立:cakephp错误。连接到数据库...不是...:访问被用户'my_app'@'localhost'拒绝(使用密码:YES)

SQLSTATE[HY000] [1045] Access denied for user 'my_app'@'localhost' (using password: YES).

我读了config/app.default.php文件。它说与一些用户有一个数据库my_app和另一个数据库test_myapp。我无法在xampp中的phymyadmin中找到这些数据库。我应该手动创建指定的数据库和用户吗?我认为CakePHP应该自动创建这些。或者我应该给我喜欢的数据库等的名称,并创建相同的。我使用xampp与Windows 7,并且是CakePHP非常新。

+0

test_myapp是一个由cakephp本身设置的测试数据库 –

回答

4

Cake不会为您创建数据库或数据库用户。您需要自己创建它们,然后将这些数据库凭据匹配到数据库配置文件中。您在app/Config/app.php文件数据源应该类似于:

'Datasources' => [ 
    'default' => [ 
     'className' => 'Cake\Database\Connection', 
     'driver' => 'Cake\Database\Driver\Mysql', 
     'persistent' => false, 
     'host' => 'localhost', 
     'username' => 'my_db_user', 
     'password' => 'my_db_user_password', 
     'database' => 'cake_database_name', 
     'encoding' => 'utf8', 
     'timezone' => 'UTC', 
     'cacheMetadata' => true, 
    ] 
], 

在这个例子中,你将不得不创建一个名为数据库:cake_database_name,然后添加一个数据库用户名为my_db_usermy_db_user_password的密码

+1

非常感谢McWayWeb,特别是您详细回答的方式。你做得很简单。你准确地判断了我的能力水平,并给出了一个简单的解释! –

+1

我添加了一个蛋糕数据库和另一个测试数据库。我创建了一个用户也有几个priviliages。我根据我创建的2个数据库更改了config.app.php中的值。仍然bin \ cake服务器命令给用户'my_app'@'localhost'(使用密码:YES)拒绝访问错误。它甚至不应该使用名称'my_app',因为我在config/app.php中改变了它,但它仍然存在。请帮忙。 –

+0

我也根据蛋糕文档的建议在第一个数据库中创建4个表格。 –

1

见Mysql.php:

类Mysql的扩展驱动 {

use MysqlDialectTrait; 
use PDODriverTrait; 

/** 
* Base configuration settings for MySQL driver 
* 
* @var array 
*/ 
protected $_baseConfig = [ 
    'persistent' => true, 
    'host' => 'localhost', 
    'username' => 'root', 
    'password' => '', 
    'database' => 'cake', 
    'port' => '3306', 
    'flags' => [], 
    'encoding' => 'utf8', 
    'timezone' => null, 
    'init' => [], 
]; 

然后在app.php写

  'Datasources' => [ 
    'default' => [ 
     'className' => 'Cake\Database\Connection', 
     'driver' => 'Cake\Database\Driver\Mysql', 
     'persistent' => false, 
     'host' => 'localhost', 
     /** 
     * CakePHP will use the default DB port based on the driver selected 
     * MySQL on MAMP uses port 8889, MAMP users will want to uncomment 
     * the following line and set the port accordingly 
     */ 
     //'port' => 'non_standard_port_number', 
     'username' => 'root', 
     'password' => '', 
     'database' => 'cake', 
     'encoding' => 'utf8', 
     'timezone' => 'UTC', 
     'flags' => [], 
     'cacheMetadata' => true, 
     'log' => false, 

...], 

在phpMyAdmin 创造蛋糕数据库。 就是这样。

相关问题