cakephp错误,连接到数据库...不是...:用户“my_app '@”localhost“的访问被拒绝(使用密码:是)

zhte4eai  于 2022-11-12  发布在  PHP
关注(0)|答案(8)|浏览(138)

我正在尝试启动CakePHP。我制作了书签并使用命令bin\cake server进行了测试。它显示了一个错误,因为无法建立到数据库的连接:
SQLSTATE[HY000] [1045] Access denied for user 'my_app'@'localhost' (using password: YES).
我读了config/app.default.php文件。它说有一个数据库my_app和另一个数据库test_myapp,有一些用户。我在xampp的phymyadmin中找不到这些数据库。我应该手动创建命名的数据库和用户吗?我认为CakePHP应该自动创建这些。或者我应该给予我喜欢的数据库等命名,然后创建相同的数据库。我“我在windows7中使用xampp,我对CakePHP非常陌生。

gjmwrych

gjmwrych1#

Cake不会为您创建数据库或数据库用户。您需要自己创建它们,然后将这些数据库凭据匹配到db配置文件中。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_user的数据库用户,密码为my_db_user_password

twh00eeo

twh00eeo2#

  • 编辑Config/app_local.php文件,而不是 Config/app.php 文件,其中包含您的数据库连接参数,即主机,用户名,密码,数据库名称。这样就可以解决问题。
    • 确保首先创建相同的数据库,并为您在app_local. php文件中写入的同一用户提供足够的权限。*
gk7wooem

gk7wooem3#

请参阅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中创建蛋糕数据库。就这样。

v7pvogib

v7pvogib4#

编辑Config/app_local.php文件,输入数据库连接参数。您将看到主机,用户名,密码,数据库名称等。

**不要使用数据库连接参数编辑config/app.php。
您的问题将立即解决

  • 蛋糕PHP 4.x*
nfs0ujit

nfs0ujit5#

错误:
SQLSTATE[HY 000] [1045]使用者'my_app'@'localhost'的存取被拒(使用密码:是)。
原因:
没有使用者ID:“my_app”,密码:在config/app.php文件中设置“secret”[或任何其他]。
解决方法:
如果是WAMP,请转到phpmyadmin页面,然后我们可以选择cake_cms database -〉privilage-〉create user id and password,与在配置文件config/app. php中一样,刷新http://localhost:8765/页面.现在应该显示
CakePHP能够连接到数据库。

egdjgwm8

egdjgwm86#

如果您正在使用wamp,请确保端口在数据源中未注解,并且'port' =〉'3308'

z6psavjg

z6psavjg7#


I通过检查phpmyadmin top中的端口解决了此问题
并取消提交app_local. php中的以下行

'port' => '3308',
zmeyuzjn

zmeyuzjn8#

用户名'=〉'根目录','密码'=〉''数据库' =〉'数据库名'

相关问题