我正在尝试在我的虚拟机上部署我的cakephp项目。
当我在我的VM上键入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
,它有效吗?怎么可能?
答案 0 :(得分:0)
你的问题不清楚,尤其是标题词" local"。我的答案遵循一种解释; BenRoob" dup of"跟随另一个。
"本地主机"是一个不同的主持人"来自具有IP地址或主机名的人。 GRANT
表格有所区别。我认为你正在绊倒这个。
GRANT ... to 'user'@'localhost' ...
让user
从相同的计算机运行时进入。 '127.0.0.1'
和'::
'可能是'localhost'
的同义词。
GRANT ... to 'user'@'%' ...
让user
从任何其他计算机进入。 (出于安全原因,不建议使用'%')