Tato chybová zpráva obvykle znamená, že buď heslo, které používáme, neodpovídá tomu, co si MySQL myslí, že by heslo mělo být pro uživatele, jako kterého se připojujeme, nebo odpovídající uživatel MySQL neexistuje (nebyl vytvořen).
V MySQL je uživatel identifikován jak uživatelským jménem ("test2") a hostitel ("localhost").
Chybová zpráva identifikuje uživatele ("test2") a hostitel ("localhost") hodnoty...
'test2'@'localhost'
Můžeme zkontrolovat, zda uživatel existuje, pomocí tohoto dotazu od klienta, ze kterého se můžeme připojit:
SELECT user, host FROM mysql.user
Hledáme řádek, který má "test2" pro uživatele a "localhost" pro hostitel .
user host
------- -----------
test2 127.0.0.1 cleanup
test2 ::1
test2 localhost
Pokud tento řádek neexistuje, pak může být hostitel nastaven na hodnotu zástupného znaku %
, aby se shodoval s jakýmkoli jiným hostitelem, který se neshoduje.
Pokud řádek existuje, heslo se nemusí shodovat. Můžeme změnit heslo (pokud jsme připojeni jako uživatel s dostatečnými oprávněními, např. root
SET PASSWORD FOR 'test2'@'localhost' = PASSWORD('mysecretcleartextpassword')
Můžeme také ověřit, zda má uživatel oprávnění k objektům v databázi.
GRANT SELECT ON jobs.* TO 'test2'@'localhost'
UPRAVIT
Pokud provedeme změny v tabulkách oprávnění mysql pomocí operací DML (INSERT, UPDATE, DELETE), tyto změny se neprojeví, dokud MySQL znovu nepřečte tabulky. Změny můžeme účinně provést vynucením opětovného čtení pomocí FLUSH PRIVILEGES
příkazu, provedeného privilegovaným uživatelem.