Muligvis en sikkerhedsforanstaltning. Du kan prøve at tilføje en ny administratorkonto:
mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> WITH GRANT OPTION;
Selvom det, som Pascal og andre har bemærket, ikke er en god idé at have en bruger med denne form for adgang åben for enhver IP. Hvis du har brug for en administrativ bruger, skal du bruge root og lade den være på localhost. For enhver anden handling skal du angive præcis de privilegier, du har brug for, og begrænse brugerens tilgængelighed, som Pascal har foreslået nedenfor.
Rediger:
Fra MySQL FAQ:
Hvis du ikke kan finde ud af, hvorfor du får adgang nægtet, skal du fjerne alle indgange fra brugertabellen, der har værtsværdier, der indeholder jokertegn (poster, der indeholder '%'- eller '_'-tegn). En almindelig fejl er at indsætte en ny post med Host='%' ogUser='some_user', idet man tænker, at dette giver dig mulighed for at specificere localhost for at oprette forbindelse fra den samme maskine. Grunden til, at dette ikke virker, er, at standardrettighederne inkluderer en indgang med Host='localhost' ogUser=''. Fordi denne post har en værtsværdi 'localhost', der er mere specifik end '%', bruges den i stedet for den nye post, når der oprettes forbindelse fra localhost! Den korrekte procedure er at indsætte en anden post med Host='localhost' ogUser='some_user', eller at slette posten med Host='localhost' ogUser=''. Når du har slettet posten, skal du huske at udstede en FLUSH PRIVILEGES-erklæring for at genindlæse bevillingstabellerne. Se også afsnit 5.4.4, "AccessControl, Stage 1:ConnectionVerification".