Z jakiegoś powodu MySQL przestał udzielać dostępu rootowi. Odinstalowano i ponownie zainstalowano z Homebrew. Świeża instalacja, świeże stoły, ale kiedy wchodzę
mysql -u root -p
Otrzymuję ten błąd:
Odmowa dostępu dla użytkownika „root” @ „localhost” (przy użyciu hasła: NIE)
Ponownie instalowałem MySQL pięć razy, ale nadal prosi o hasło. Jak to naprawić?
mysql_secure_installation
i odpowiedz na zadane pytania, prostemysql -u root
Pracowało tu FWIW ...Odpowiedzi:
Po prostu uruchom to polecenie (gdzie
NEWPASS
jest twoje hasło):Miałem ten sam błąd i naprawiłem go w ten sposób.
źródło
$(brew --prefix mariadb)/bin/mysqladmin -u root password NEWPASS
sudo $(brew --prefix mariadb)/bin/mysqladmin -u root password NEWPASS
Żaden z nich nie działał dla mnie. Myślę, że miałem już mysql gdzieś na moim komputerze, więc hasło zostało tam ustawione lub coś w tym stylu. Po spędzeniu wielu godzin na wypróbowywaniu każdego rozwiązania, oto co zadziałało:
wszystkie zasługi dla @Ghrua
źródło
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD';
aby ustawić nowe hasło roota.W przypadku, gdy nieumyślnie ustawiłeś i zapomniałeś hasła roota, i nie chcesz wyczyścić wszystkich baz danych i zacząć od nowa, ponieważ jesteś leniwy i zapomniałeś mieć rozwiązanie do tworzenia kopii zapasowych na miejscu, a używasz dość niedawnej instalacji Homebrew (Zima 2013), oto kroki, aby zresetować hasło do MySQL.
Zatrzymaj aktualnie działającą instancję MySQL
Teraz uruchom mysql ręcznie, pomijając tabele grantów i sieci
Zauważ, że jeśli uruchomisz echo $ (brew --prefix mysql) i nie odpowiada ono jako „/ usr / local / opt / mysql” w bash, będziesz musiał odpowiednio dostosować ścieżkę.
Gdy to zrobisz, powinieneś mieć uruchomioną, niezabezpieczoną instancję MySQL.
Zaloguj się i ustaw hasło
Po wyświetleniu monitu wprowadź następujące polecenie MySQL, aby ustawić nowe hasło dla użytkownika, którego dotyczy zmiana.
Gdyby wszystko poszło zgodnie z planem, powinno powiedzieć:
Wyjdź z zachęty MySQL.
Zatrzymaj serwer:
Teraz odłóżmy demona uruchamiania, abyśmy mieli ponownie gotowy MySQL:
Gratulacje. Właśnie zresetowałeś swoje hasło root mysql. Nalej sobie kawę i przygotuj rozwiązanie zapasowe!
źródło
mysqladmin -u root shutdown
password
nie była to prawidłowa kolumna w mysql 5.7.9. Zamiast tego musiałem użyćauthentication_string
. Reszta instrukcji działała idealnie. Dzięki!update user set authentication_string=password('new_password_here') where user='root';
update mysql.user set authentication_string=password('none') where user='root';
, żeby to zadziałało. (Podobnie jak w komentarzu tuż nad mną, ale poprzedzićmysql.
douser
.)Kilka dni temu miałem ten sam problem. Dzieje się tak, gdy instalujesz
mysql
przezhomebrew
i uruchamiasz skrypt inicjalizacyjny (mysql_install_db
) przed uruchomieniemmysql
demona.Aby to naprawić, możesz usunąć
mysql
pliki danych, zrestartować usługę, a następnie uruchomić skrypt inicjalizacyjny:źródło
mysqld --initialize
No such file or directory
kiedy uruchamiam to pierwsze polecenie.Otrzymałem ten błąd po zainstalowaniu mysql przez home brew.
Więc najpierw usuń instalację. Następnie zainstaluj ponownie przez Homebrew
Następnie zrestartuj usługę mysql
Następnie uruchom to polecenie, aby ustawić nowe hasło roota.
Na koniec poprosi o ponowne załadowanie uprawnień. Powiedz tak. Następnie zaloguj się ponownie do mysql. I użyj nowego hasła, które ustawiłeś.
źródło
mysql_secure_installation
ale kluczową częścią byłmysql.server restart
Jeśli uciekniesz
również logowanie z kontem root nie powiedzie się:
następnie użytkownik domyślny administrator jest tworzony samą nazwę jak twoi MacOS konto użytkownika , np johnsmit .
Aby zalogować się jako root, wyślij:
źródło
To zadziałało dla mnie:
źródło
Właśnie zauważyłem coś wspólnego dla większości odpowiedzi tutaj i potwierdziłem to podczas mojej nowej instalacji. Jest to naprawdę oczywiste, jeśli spojrzysz na zalecenia,
mysqladmin -u root
bez których należy działać-p
.Brak hasła.
Brew ustawia mysql tylko z użytkownikiem root i bez hasła. Wydaje mi się, że ma to sens, ale zastrzeżenia po instalacji w ogóle o tym nie wspominają.
źródło
Spróbuj za pomocą,
sudo
aby uniknąć błędu „Odmowa dostępu”:sudo $(brew --prefix mariadb)/bin/mysqladmin -u root password NEWPASS
źródło
Ponieważ pytanie zostało zadane / odpowiedział dawno temu, te najlepsze odpowiedzi nie działają dla mnie. Oto moje rozwiązanie w 2020 roku.
Tło : Świeży mysql / mariadb zainstalowany przez homebrew.
Problem : Hasło roota nie jest puste i nieznane.
Poprawka :
Powód :
źródło
Mam nadzieję że to pomoże.
źródło
Uruchomienie tych linii w terminalu załatwiło sprawę mnie i kilku innym, którzy mieli ten sam problem. Te instrukcje są wyświetlane w terminalu po pomyślnym zainstalowaniu mysql przez brew.
gdzie
YOURPASSWORD
jest hasło do roota.źródło
No such file or directory
kiedy wykonuję te poleceniaSprawdź, czy nie masz pliku .my.cnf ukrytego w swoim katalogu domowym. To był mój problem.
źródło
To zadziałało dla mnie dla MAC https://flipdazed.github.io/blog/osx%20maintenance/set-up-mysql-osx
Uruchom mysql, uruchamiając
usługi parzenia start mysql
Uruchom skrypt instalacyjny
mysql_secure_installation
Zostaniesz poproszony o skonfigurowanie wtyczki WERYFIKUJ HASŁO. Wpisz y, aby to zrobić.
Wybierz wymaganą weryfikację hasła (nie ma znaczenia, czy tylko Ty korzystasz z bazy danych)
Teraz wybierz y dla wszystkich pozostałych opcji: Usuń anon. użytkownicy; nie zezwalaj na zdalne logowanie jako root; usuń testową bazę danych; przeładować tabele uprawnień. Teraz powinieneś otrzymać wiadomość o
All done!
źródło
To zadziałało dla mnie. Miejmy nadzieję, że to działa również dla Ciebie !!! Podążaj za nimi.
źródło
rm -rf /usr/local/var/mysql/
polecenia spowoduje usunięcie wszystkich baz danych i danych MySQL na Twoim komputerze!Domyślne hasło podczas instalacji mysql przez brew to root, spróbuj tego, zadziałało
mysql -uroot -proot
źródło
brew info mysql
: Zainstalowaliśmy bazę danych MySQL bez hasła roota. Aby go zabezpieczyć, uruchom: mysql_secure_installationTerminal 1:
Terminal 2:
źródło
Używam Cataliny i używam tego
mysql_secure_installation
polecenia, a teraz działa dla mnie:wprowadzam
root
jako aktualne hasłoi zajmij się resztą
źródło
Więc na wypadek, gdyby ktoś miał taką samą sytuację i konfigurację jak ja i też zaraz oszaleje - to zadziałało mnie .
Po długiej historii miałem zainstalowaną MariaDB, która automatycznie uruchamiała się ponownie, gdy zabiłem jej proces (to było robione przez brew), która miała hasło roota, którego nie znałem.
$ brew services list
To pokazuje coś takiego:
mariadb started jdoe /path/to/homebrew.mxcl.mariadb.plist
Zatrzymaj serwer MySQL za pomocą:
$ brew services stop mariadb
Następnie uruchom go ponownie bez użytkownika root (i nie używając brew):
$ mariadbd --skip-grant-tables &
Tutaj
mysql_secure_installation
nie zadziałało u mnie z powodu--skip-grant-tables
, a bez tego nie zadziałałoby,--skip-grant-tables
bo potrzebne było hasło (którego nie miałem).Próba
$(brew --prefix mysql)/bin/mysqladmin -u root password hunter2
zwróciła tylko dziwne błędy i nic nie dała;$(brew --prefix mariadb)/bin/mysqladmin -u root password hunter2
również nie działał, podawał różne błędy i sugestie, które nie działały dla mnie.Ale może zalogować się do mysql teraz bez mandatów:
$ mysql
W tym przypadku stara metoda aktualizowania tabeli użytkowników dla roota nie działa, ponieważ „Hasło kolumny” nie jest aktualizowalne ”.
Nowa metoda używa,
alter user
ALE działa tylko wtedy, gdy to zrobiszflush privileges;
, zrób to najpierw.Następnie:
MariaDB [(none)]> alter user 'root'@'localhost' identified by 'hunter2';
(
MariaDB [(none)]>
jest MySQL szybka tutaj)wtedy zrobić
flush privileges;
ponownie.Zamknij klienta MySQL.
Jeśli chodzi o napar, MariaDB nadal nie działa, więc użyj go,
$ ps aux | grep -i mariadb
aby znaleźć pid i$ kill -9 <pid>
to.Następnie użyj,
$ brew services start mariadb
aby rozpocząć ponownie.źródło
Użyj pliku init, aby uruchomić mysql i zmienić hasło roota.
Twoje hasło roota zostało zmienione. Upewnij się, że serwer został poprawnie zamknięty, aby zapisać zmianę hasła. W nowym oknie terminala wykonaj
i wprowadź nową przepustkę.
Uruchom usługę i usuń plik init
Testowane na mysql w wersji 8.0.19
źródło