sql >> Databasteknik >  >> RDS >> Mysql

SQLSTATE[HY000] [1045] Åtkomst nekad för användaren 'användarnamn'@'localhost' med CakePHP

Det felmeddelandet betyder vanligtvis att antingen lösenordet vi använder inte stämmer överens med det som MySQL tror att lösenordet ska vara för användaren vi ansluter som, eller så finns det inte en matchande MySQL-användare (har inte skapats).

I MySQL identifieras en användare av både ett användarnamn ("test2") och en värd ("localhost").

Felmeddelandet identifierar användaren ("test2") och värden ("localhost") värden...

  'test2'@'localhost'

Vi kan kontrollera om användaren finns med den här frågan från en klient som vi kan ansluta från:

 SELECT user, host FROM mysql.user

Vi letar efter en rad som har "test2" för användare , och "localhost" för värd .

 user     host       
 -------  -----------
 test2     127.0.0.1  cleanup
 test2     ::1        
 test2     localhost  

Om den raden inte finns kan värden ställas in på jokerteckenvärdet % , för att matcha någon annan värd som inte är en matchning.

Om raden finns kanske lösenordet inte matchar. Vi kan ändra lösenordet (om vi är anslutna som användare med tillräckliga rättigheter, t.ex. root

 SET PASSWORD FOR 'test2'@'localhost' = PASSWORD('mysecretcleartextpassword')

Vi kan också verifiera att användaren har privilegier på objekt i databasen.

 GRANT SELECT ON jobs.* TO 'test2'@'localhost' 

REDIGERA

Om vi ​​gör ändringar i mysql-privilegietabeller med DML-operationer (INSERT,UPDATE,DELETE), kommer dessa ändringar inte att träda i kraft förrän MySQL läser tabellerna igen. Vi kan göra ändringar effektiva genom att tvinga en ny läsning med en FLUSH PRIVILEGES uttalande, exekveras av en privilegierad användare.



  1. Upprätthålla ett grupperat löpande MAX (eller MIN)

  2. SQL-kommaseparerad rad med Group By-sats

  3. Hur får man senast infogade id?

  4. Installera Laravel på Ubuntu med stöd för Apache, MariaDB och PHP