Właśnie zainstalowałem MySQL na Mac OS X. Kolejnym krokiem było ustawienie hasła użytkownika root, więc zrobiłem to w następnej kolejności:
- Uruchom aplikację terminalową, aby uzyskać dostęp do wiersza poleceń systemu Unix.
Pod poleceniem Unixa wykonałem następujące polecenia:
$ cd /usr/local/mysql/bin $ ./mysqladmin -u root password 'password'
Ale kiedy wykonuję polecenie
$ ./mysql -u root
, to jest odpowiedź:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 224
Server version: 5.5.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Mogę dostać się do mysql
wiersza poleceń bez żadnego hasła!
Dlaczego to?
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
zamiast tego.'password'
po prawej stronie równościERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Jeśli nie pamiętasz hasła ustawionego dla użytkownika root i musisz je zresetować, wykonaj następujące kroki:
sudo mysqld_safe --skip-grant-tables;
mysql -u root
W przypadku MySQL starszego niż MySQL 5.7 użyj:
UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';
W przypadku MySQL 5.7+:
USE mysql;
UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';
Odśwież i zamknij:
FLUSH PRIVILEGES;
\q
źródło
password
musi byćauthentication_string
teraz.UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';
, tak jak powiedział @Scott.sudo kill
Nie działam, ponieważ Mac OSx automatycznie ponownie uruchamia nowy msql. Gdy zatrzymałem mysql za pomocą panelu preferencji, mogłem ręcznie uruchomićmysqld_safe --skip-grant-tables
Po zainstalowaniu MySQL musisz ustalić hasło „root”. Jeśli nie ustanawiasz hasła roota, to nie ma hasła roota i nie potrzebujesz hasła do logowania.
To powiedziawszy, musisz ustalić hasło roota.
Za pomocą terminala wprowadź następujące dane:
Instalacja: Ustaw hasło użytkownika root:
Jeśli popełniłeś błąd lub musisz zmienić hasło roota, użyj następujących poleceń:
Zmień hasło roota:
źródło
update user set authentication_string=PASSWORD("NEW_PASSWORD_HERE") where User='root';
zamiastset password=...
Instrukcje podane na stronie mysql są tak jasne, jak wyżej wspomniane
$ sudo /usr/local/mysql/support-files/mysql.server stop
$ sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables
/usr/local/mysql/bin/mysql
exit
lub Ctrl + z$ sudo /usr/local/mysql/support-files/mysql.server stop
$ sudo /usr/local/mysql/support-files/mysql.server start
/usr/local/mysql/support-files/mysql -u root -p
Odniesienie: http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
źródło
Zatrzymaj serwer mysqld.
System Preferences
>MySQL
>Stop MySQL Server
sudo systemctl stop mysqld.service
Uruchom serwer w trybie awaryjnym z obejściem uprawnień
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
W nowym oknie terminala:
sudo /usr/local/mysql/bin/mysql -u root
Spowoduje to otwarcie wiersza polecenia mysql. Stąd wprowadź:
UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';
FLUSH PRIVILEGES;
quit
Zatrzymaj serwer mysqld ponownie i uruchom go ponownie w trybie normalnym.
sudo /usr/local/mysql/support-files/mysql.server restart
sudo systemctl restart mysqld
źródło
Dla nowego MySQL 5.7 z jakiegoś powodu polecenia bin MySQL nie są dołączone do powłoki:
Uruchom ponownie komputer Mac po instalacji.
Uruchom MySQL:
Preferencje systemowe> MySQL> przycisk Start
Przejdź do folderu instalacyjnego MySQL w terminalu:
$ cd /usr/local/mysql/bin/
Dostęp do MySQL:
$ ./mysql -u root -p
i wprowadź początkowe hasło podane dla instalacji.
W terminalu MySQL zmień hasło:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
źródło
W terminalu napisz
mysql -u root -p
i naciśnij Return. Wprowadź bieżące hasło mysql, które musisz zanotować. I ustaw hasłoSET PASSWORD = PASSWORD('new_password');
Więcej informacji można znaleźć w tej dokumentacji tutaj .
źródło
Jeśli zapomniałeś hasła root MySQL, nie pamiętasz lub nie chcesz się włamać… .. możesz zresetować hasło bazy danych mysql z wiersza poleceń w systemie Linux lub OS X, o ile znasz hasło root użytkownika jesteś na:
(1) Zatrzymaj MySQL
(2) Uruchom go w trybie awaryjnym:
(3) Będzie to ciągłe polecenie do zakończenia procesu, więc otwórz kolejne okno powłoki / terminala , zaloguj się bez hasła:
W powyższym poleceniu UPDATE po prostu zastąp „hasło” własnym nowym hasłem, pamiętaj o zachowaniu cudzysłowów
(4) Oszczędzaj i całkiem
(5) Uruchom MySQL
źródło
Kiedy zainstalowałem OS X Yosemite, mam problem z Mysql. Próbowałem wielu metod, ale żadna nie działała. Znalazłem dość łatwy sposób. Wypróbuj to.
sudo su
sudo /usr/local/mysql/support-files/mysql.server stop
sudo mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
źródło
Metody wymienione w istniejących odpowiedziach nie działają dla mysql 5.7.6 lub nowszej. Według dokumentacji mysql jest to zalecany sposób.
B.5.3.2.3 Resetowanie hasła roota: instrukcje ogólne
MySQL 5.7.6 i nowsze wersje:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Odniesienie: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
źródło
Jeśli nie pamiętasz hasła, odpowiedź @ radtek zadziałała dla mnie, z wyjątkiem mojego przypadku, w którym skonfigurowałem MySQL przy użyciu brew, co oznaczało, że kroki 1 i 2 jego odpowiedzi musiały zostać zmienione na:
/usr/local/bin/mysql.server stop
/usr/local/bin/mysqld_safe --skip-grant-tables
Uwaga: brak
sudo
.źródło
Myślę, że to powinno działać:
(Pamiętaj, że prawdopodobnie powinieneś zastąpić root swoją nazwą użytkownika, jeśli nie jest to root)
źródło
Zatrzymywanie serwera MySQL
sudo /usr/local/mysql/support-files/mysql.server stop
Uruchamianie MySQL w trybie awaryjnym
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
Zmiana hasła roota
/usr/local/mysql/bin/mysql -u root
Testowanie
Biegać
/usr/local/mysql/bin/mysql -u root
Teraz wprowadź nowe hasło, aby rozpocząć korzystanie z MySQL.
źródło
Oto, co dokładnie dla mnie zadziałało:
Upewnij się, że żaden inny proces MySQL nie jest uruchomiony. Aby to sprawdzić, wykonaj następujące czynności:
Uruchom MySQL za pomocą polecenia:
Hasło dla każdego użytkownika jest przechowywane w tabeli mysql.user odpowiednio w kolumnach Użytkownik i ciąg_ uwierzytelnienia. Możemy zaktualizować tabelę jako:
źródło
macOS 10.14+ z 5.7.26 zainstalowanym z instalatora Mac OSX DMG.
Podczas próby użycia polecenia UPDATE wysłanego przez innych użytkowników występuje następujący błąd:
BŁĄD 1820 (HY000): Przed wykonaniem tej instrukcji musisz zresetować hasło za pomocą instrukcji ALTER USER.
Skopiuj hasło, które zostało przedstawione przez otwarty terminal instalatora i wykonaj następujące czynności:
źródło
Wypróbuj to w terminalu:
/usr/local/bin/mysql_secure_installation
źródło
Aby odwołać się do MySQL 8.0.15 +, funkcja hasła () jest niedostępna. Użyj polecenia poniżej.
Uprzejmie używać
źródło
Jeśli zapomniałeś hasła lub chcesz je zmienić na mysql:
gdzie „nowe_hasło” - twoje nowe hasło. Nie potrzebujesz starej przepustki na mysql.
źródło
Wiele się zmieniło w MySQL 8. Znalazłem następującą modyfikację dokumentacji MySQL 8.0 „Jak zresetować hasło root” w systemie Mac OS X.
Utwórz plik tymczasowy
$HOME/mysql.root.txt
za pomocą SQL, aby zaktualizować hasło roota:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<new-password>';
Pozwala
mysql_native_password
to uniknąć błędu ładowania wtyczki Uwierzytelnianie „caching_sha2_password” , którą otrzymuję, jeśli pominę tę opcję.Zatrzymaj serwer, zacznij od
--init-file
opcji ustawienia hasła roota, a następnie uruchom ponownie serwer:mysql.server stop mysql.server start --init-file=$HOME/mysql.root.txt mysql.server stop mysql.server start
źródło
Dodajmy to obejście, które działa na moim laptopie!
Mac z Osx Mojave 10.14.5
MySQL 8.0.17 został zainstalowany z Homebrew
Uruchomię następujące polecenie, aby zlokalizować ścieżkę mysql
brew info mysql
Po poznaniu ścieżki uruchamiam to:
/usr/local/Cellar/mysql/8.0.17/bin/mysqld_safe --skip-grant-table
W innym terminalu uruchamiam:
mysql -u root
W tym terminalu zmieniłem hasło roota, używając:
update mysql.user set authentication_string='NewPassword' where user='root';
i na koniec biegnę:
FLUSH PRIVILEGES;
I voila hasło zostało zresetowane.
Bibliografia :
źródło
Możesz ręcznie wyłączyć mysql na Macu, klikając menu Apple i otwierając Preferencje systemowe. Wybierz panel preferencji „MySQL”, a następnie kliknij przycisk „Zatrzymaj serwer MySQL”, aby zatrzymać serwer MySQL na komputerze Mac.
Po zatrzymaniu mysql musisz wykonać następujące kroki.
Następnie możesz przejść do menu Apple i otworzyć Preferencje systemowe. Wybierz panel preferencji „MySQL”, a następnie kliknij przycisk „Zatrzymaj serwer MySQL”, aby zatrzymać serwer MySQL na komputerze Mac.
Wreszcie możesz ponownie przejść do menu Apple i otworzyć Preferencje systemowe. Wybierz panel preferencji „MySQL”, a następnie kliknij przycisk „Uruchom serwer MySQL”, aby uruchomić serwer MySQL na komputerze Mac.
Mam nadzieję, że to pomaga
źródło
Żaden z poprzednich komentarzy nie rozwiązał problemu na moim komputerze Mac. Użyłem poniższych poleceń i zadziałało.
źródło
Jakoś muszę to robić za każdym razem, gdy mój Macbook uruchamia się ponownie. Opublikowanie tego w celach osobistych, mam nadzieję, że pomoże to również komuś innemu.
źródło