Ewentualnie środek ostrożności. Możesz spróbować dodać nowe konto administratora:
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;
Chociaż, jak zauważyli Pascal i inni, nie jest dobrym pomysłem, aby użytkownik z takim dostępem był otwarty na dowolny adres IP. Jeśli potrzebujesz użytkownika administracyjnego, użyj roota i zostaw go na localhost. W przypadku każdej innej czynności określ dokładnie uprawnienia, których potrzebujesz i ogranicz dostępność użytkownika, jak sugeruje poniżej Pascal.
Edycja:
Z FAQ MySQL:
Jeśli nie możesz zrozumieć, dlaczego odmówiono dostępu, usuń z tabeli użytkownika wszystkie wpisy zawierające wartości hosta zawierające symbole wieloznaczne (wpisy zawierające znaki „%” lub „_”). Bardzo powszechnym błędem jest wstawienie nowego wpisu z Host='%' iUser='jakiś_użytkownik', myśląc, że pozwala to określić localhost do połączenia z tej samej maszyny. Powodem, dla którego to nie działa, jest to, że domyślne uprawnienia obejmują wpis z Host='localhost' iUser=''. Ponieważ ten wpis ma wartość hosta 'localhost', która jest bardziej konkretna niż '%', jest on używany bez względu na nowy wpis podczas łączenia się z hosta lokalnego! Poprawną procedurą jest wstawienie drugiego wpisu z Host='localhost' andUser='jakiś_użytkownik' lub usunięcie wpisu z Host='localhost' andUser=''. Po usunięciu wpisu pamiętaj o wydaniu instrukcji FLUSH PRIVILEGES, aby ponownie załadować tabele grantów.Patrz także Sekcja 5.4.4, „Kontrola dostępu, Etap 1:Weryfikacja połączenia”.