Я пытаюсь развернуть свой проект 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
а это работает? Как это возможно?
Ваш вопрос неясен, особенно название слова «локально». Мой ответ следует за одной интерпретацией; «Дуп» БенРуба следует за другим.
«localhost» — это «хост», отличный от тех, у кого IP-адрес или имя хоста. GRANT
таблицы делают различие. Я думаю, что вы запутались в таких.
GRANT ... to 'user'@'localhost' ...
Давайте user
попасть при беге с так же машина. '127.0.0.1'
а также '::
являются, вероятно, синонимами 'localhost'
,
GRANT ... to 'user'@'%' ...
Давайте user
получить от любого Другой машина. (Из соображений безопасности «%» не рекомендуется.)
Других решений пока нет …