2017-10-30 13 views
-3

내 가상 컴퓨터에 내 cakephp 프로젝트를 배포하려고합니다.사용자 'root'@ 'localhost'에 대한 액세스가 거부되었지만 로컬로 작동합니다.

내 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' 

그래서 내가 이렇게하여 새 암호를 설정하려 : 여기

내 DB의 설정이 같은 모습입니다

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

하지만 여전히 작동하지 않습니다.

mysql도 입력 할 수 있습니다. 그게 가능한가?

+4

[사용자 'root @ localhost'에 대한 액세스가 거부되었습니다 (암호를 사용하여 : NO)] (https://stackoverflow.com/questions/2995054/access) 복제본이 가능한 복제본입니다 (보안상의 이유로 '%'는 권장되지 않습니다). -denied-for-user-rootlocalhost-using-passwordno) – BenRoob

답변

0

귀하의 질문은 명확하지 않으며, 특히 "현지"라는 제목이 명확하지 않습니다. 내 대답은 하나의 해석을 따른다. BenRoob의 "dup of"은 다른 것을 뒤 따른다.

"localhost"는 IP 주소 또는 호스트 이름을 가진 호스트와 다른 "호스트"입니다. GRANT 테이블은 구별됩니다. 나는 네가 그런 걸 넘어서고 있다고 생각해.

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

같은 컴퓨터에서 실행하는 경우에 얻을 user 수 있습니다. '127.0.0.1'':: '은 아마도 'localhost'의 동의어입니다.
GRANT ... to 'user'@'%' ... 

다른 기계에서 얻을 user 수 있습니다.