-3

我正在尝试在我的虚拟机上部署我的 cakephp 项目。

当我mysql -u root -p在我的虚拟机上打字时,它可以工作,但 cakephp 似乎无法访问它。

这是我的数据库配置的样子:

'Datasources' => [
    'default' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => '127.0.0.1',
        //'port' => 'non_standard_port_number',
        'username' => 'root',
        'password' => '',
        'database' => 'webarena',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'flags' => [],
        'cacheMetadata' => true,
        'log' => false,
        'quoteIdentifiers' => false,
        'url' => env('DATABASE_URL', null),
    ],

我有以下错误:

SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'

所以我尝试通过这样做来设置新密码:

mysql> UPDATE mysql.user SET Password=PASSWORD('SecurePassword') WHERE
User='root';
mysql> FLUSH PRIVILEGES;
mysql> EXIT

但还是不行。

我也可以打字mysql,它有效吗?这怎么可能?

4

1 回答 1

0

您的问题不清楚,尤其是标题“本地”。我的回答遵循一种解释;BenRoob 的“dup of”紧随其后。

“localhost”是与具有 IP 地址或主机名的“主机”不同的“主机”。GRANT表格做出了区分。我认为你正在绊倒这样的事情。

    GRANT ... to 'user'@'localhost' ...

在同一台机器 user上运行时让我们进入。和' 可能是 的同义词。'127.0.0.1''::'localhost'

    GRANT ... to 'user'@'%' ...

让我们user从任何其他机器进入。(出于安全原因,不建议使用 '%'。)

于 2017-11-04T02:18:02.687 回答