Доступ запрещен для пользователя ‘root’ @ ‘localhost’, но работает локально

Я пытаюсь развернуть свой проект 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 а это работает? Как это возможно?

-3

Решение

Ваш вопрос неясен, особенно название слова «локально». Мой ответ следует за одной интерпретацией; «Дуп» БенРуба следует за другим.

«localhost» — это «хост», отличный от тех, у кого IP-адрес или имя хоста. GRANT таблицы делают различие. Я думаю, что вы запутались в таких.

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

Давайте user попасть при беге с так же машина. '127.0.0.1' а также '::являются, вероятно, синонимами 'localhost',

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

Давайте user получить от любого Другой машина. (Из соображений безопасности «%» не рекомендуется.)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]