Jak zresetować lub zmienić hasło root MySQL?

179

Jak zmienić hasło root i nazwę użytkownika MySQL na serwerze Ubuntu? Czy muszę zatrzymać usługę mysql przed wprowadzeniem jakichkolwiek zmian?

Mam również konfigurację phpmyadmin, czy phpmyadmin zostanie zaktualizowany automatycznie?

asm234
źródło
Jeśli nie potrzebujesz danych, możesz "zresetować" hasło, usuwając w całości mysql: stackoverflow.com/questions/10853004/ ... następnie instalując je ponownie (pojawi się monit o "nowe" hasło roota) FWIW: )
rogerdpack
Czy znasz hasło root MySQL?
Franck Dernoncourt
2
w mysql-server-5.7 te metody nie działają. użyj „sudo” bez hasła, jak wspomniano na askubuntu.com/a/848504
Pragalathan M

Odpowiedzi:

225

Ustaw / zmień / zresetuj hasło root MySQL w systemie Ubuntu Linux. Wprowadź następujące wiersze w terminalu.

  1. Zatrzymaj serwer MySQL: sudo /etc/init.d/mysql stop
  2. Rozpocznij mysqldkonfigurację:sudo mysqld --skip-grant-tables &

    W niektórych przypadkach musisz utworzyć /var/run/mysqldpierwszy:

    sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
  3. Biegać: sudo service mysql start
  4. Zaloguj się do MySQL jako root: mysql -u root mysql
  5. Zastąp YOURNEWPASSWORDnowym hasłem:

    UPDATE
      mysql.user
    SET
      Password = PASSWORD('YOURNEWPASSWORD')
    WHERE
      User = 'root';
    FLUSH PRIVILEGES;
    exit;

Uwaga: w niektórych wersjach, jeśli passwordkolumna nie istnieje, możesz spróbować:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

Uwaga: ta metoda nie jest uważana za najbezpieczniejszy sposób resetowania hasła, jednak działa.

Bibliografia:

  1. Ustaw / Zmień / Zresetuj hasło root MySQL w systemie Ubuntu Linux
  2. Jak zresetować hasło roota
Christian Mark
źródło
20
Oczywiście po tym momencie będziesz musiał zabić tymczasowy proces serwera bez hasła, który rozpocząłeś w kroku 2. może użyć sudo killall -9 mysqld? a potem sudo service mysql startzrestartować normalnego demona ...
Lambart
7
Metoda w tej odpowiedzi jest potrzebna tylko do zresetowania hasła roota MySQL, którego nie znasz [źródło ]. Jeśli ją znasz, SET PASSWORDinstrukcja MySQL jest dla Ciebie.
tanius
53
Postępowałem zgodnie z trzecim krokiem i otrzymałem Nie mogę połączyć się z lokalnym serwerem MySQL przez gniazdo '/var/run/mysqld/mysqld.sock' (2), kiedy
loguję się
12
w niektórych przypadkach musisz także biec mkdir /var/run/mysqldi chown mysql: /var/run/mysqldmiędzy krokami 1 i 2
Neville Nazerane
9
krok 3 nie zadziałał dla mnie z Ubuntu 18.04. Właśnie zalogowałem się za pomocą sudo mysql
itsols
122

Jedyna metoda, która u mnie zadziałała, to ta opisana tutaj (używam ubuntu 14.04). Dla jasności postępowałem zgodnie z następującymi krokami:

  1. sudo vim /etc/mysql/my.cnf
  2. Na końcu dodaj następujące wiersze:

    [mysqld]
    
    skip-grant-table
  3. sudo service mysql restart

  4. mysql -u root

  5. use mysql

  6. select * from mysql.user where user = 'root';- Spójrz na górę, aby określić, czy kolumna hasła nosi nazwę hasło, czy ciąg uwierzytelniania

  7. UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost'; - Użyj odpowiedniej kolumny hasła z góry

  8. FLUSH PRIVILEGES;

  9. exit

  10. sudo vim /etc/mysql/my.cnf

  11. Usuń linie dodane w kroku 2, jeśli chcesz zachować standardy bezpieczeństwa.

  12. sudo service mysql restart

Dla odniesienia: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

narko
źródło
8
Wreszcie to zadziałało! Używam MySQL 5.7.18 na Ubuntu 16.04. Wypróbowałem dpkg-reconfigure, odpowiedź Anvesha, odpowiedź Christiana Marka, a nawet instrukcje na stronie pomocy MySQL.
mbuc91
9
Musiałem uruchomić UPDATE mysql.user SET authentication_string = PASSWORD ('newpwd') WHERE User = 'root'; zamiast tego dla linii 5.
mbuc91
2
Jedyne rozwiązanie, które u mnie zadziałało. Mam Ubuntu 17.04 i mysql 5.7
Mohamed
1
Niestety, to nie działa dla mnie mysql 5.7.22 ubuntu 18.04
Mario
1
Wszystko działało zgodnie z oczekiwaniami. Ale kiedy próbuje się zalogować, mówi Wprowadź hasło: BŁĄD 1698 (28000): Odmowa dostępu dla użytkownika 'root' @ 'localhost'
Dipak Chatterjee
101

Oficjalny i łatwy sposób na zresetowanie hasła roota na serwerze Ubuntu ...

Jeśli jesteś 16.04, 14.04, 12.04:

sudo dpkg-reconfigure mysql-server-5.5

Jeśli jesteś 10.04:

sudo dpkg-reconfigure mysql-server-5.1

Jeśli nie jesteś pewien, która wersja serwera mysql jest zainstalowana, możesz spróbować:

dpkg --get-selections | grep mysql-server

Zaktualizowane uwagi dla mysql-server-5.7

Zauważ, że jeśli używasz mysql-server-5.7, nie możesz użyć łatwiejszej metody dpkg-reconfigure pokazanej powyżej.

Jeśli znasz hasło, zaloguj się i uruchom to:

UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;

Alternatywnie możesz skorzystać z:

sudo mysql_secure_installation

Spowoduje to wyświetlenie szeregu pytań dotyczących zabezpieczenia instalacji (wysoce zalecane), w tym, jeśli chcesz podać nowe hasło roota.

Jeśli NIE znasz hasła roota, zapoznaj się z tym, skoncentrowanym na Ubuntu, opisem procesu .

Zobacz więcej informacji:

https://help.ubuntu.com/16.04/serverguide/mysql.html https://help.ubuntu.com/14.04/serverguide/mysql.html

user12345
źródło
3
Działa nawet po zgubieniu oryginalnego hasła roota MySQL - fajnie.
tanius
4
Działa zVer 14.14 Distrib 5.5.38, for debian-linux-gnu
justinpage
Pracowałem również z mysql v 5.0 ...sudo dpkg-reconfigure mysql-server-5.0
dsghi,
4
sudo dpkg-reconfigure mysql-server-5.7 nie działa dla Ubuntu 18.04 w celu zresetowania hasła roota. Jakieś inne zastępstwo?
Jagdeep Singh
Ubuntu:sudo dpkg-reconfigure mysql-server-5.7; sudo mysql_secure_installation
kenorb
77

Co mi zadziałało (Ubuntu 16.04, mysql 5.7):

Zatrzymaj MySQL

sudo service mysql stop

Utwórz katalog usługi MySQL.

sudo mkdir /var/run/mysqld

Daj użytkownikowi MySQL uprawnienia do zapisu w katalogu usług.

sudo chown mysql: /var/run/mysqld

Uruchom MySQL ręcznie, bez sprawdzania uprawnień i sieci.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Na innej konsoli zaloguj się bez hasła.

mysql -uroot mysql

Następnie:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;

Wyłącz MySQL.

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Uruchom usługę MySQL normalnie.

sudo service mysql start
fabriciofreitag
źródło
Inne sposoby nie zadziałały dla mnie, ale ten (dzięki!), Lub możesz też wejść tutaj rricketts.com/reset-root-password-mysql-5-7-ubuntu-16-04-lts
Dung
10
Bardzo przydatne ! W moim konkretnym przypadku (Ubuntu 18.04 LTS) musiałem zamienić hosta „%” na „localhost”
FredericK
To nie zadziałało w Ubuntu 18.04. Ale zadziałało z tą małą zmianą opisaną tutaj stackoverflow.com/a/53385753/1591143
Aleksandar Popovic
76

Udostępniam ostateczne rozwiązanie krok po kroku, aby zresetować hasło MySQL w systemie Linux Ubuntu.

Odniesienie pobrane z bloga (dbrnd.com)

Krok 1: Zatrzymaj usługę MySQL.

sudo stop mysql

Krok 2: Zabij wszystkie uruchomione mysqld.

sudo killall -9 mysqld

Krok 3: Uruchamianie mysqld w trybie awaryjnym.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Krok 4: Uruchom klienta mysql

mysql -u root

Krok 5: Po pomyślnym zalogowaniu wykonaj to polecenie, aby zmienić dowolne hasło.

FLUSH PRIVILEGES;

Krok 6: Możesz zaktualizować hasło root mysql.

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

Uwaga : w MySQL 5.7 kolumna Passwordnazywa się authentication_string.

Krok 7: Wykonaj to polecenie.

FLUSH PRIVILEGES;
Anvesh
źródło
W rzeczy samej. Jest też bliżej oficjalnej dokumentacji . Jeśli napotkasz to: „BŁĄD 1524 (HY000): Wtyczka 'auth_socket' nie jest załadowana”, spójrz na stackoverflow.com/questions/37879448/ ...
Wtower
Musiałem również zmienić mysql.user.plugin z „auth_socket” na „mysql_native_password” dla mojego użytkownika root z hostem „localhost”.
Brandon
1
Musiałem użyć „sudo /etc/init.d/mysql stop”, aby zatrzymać usługę i „UPDATE mysql.user SET authentication_string = PASSWORD ('newpwd') WHERE User = 'root';" aby zaktualizować hasło
L Bahr
1
uwierzytelniony
_string
42

Miałem problemy z Ubuntu 18.04 i mysql 5.7, to jest rozwiązanie

Spróbuj ponownie uruchomić serwer mysql przed wykonaniem komend

sudo service mysql restart

SERWER MYSQL> = 5,7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

SERWER MYSQL <5,7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
Jerfeson Guerreiro
źródło
1
Dzięki, używam tutaj również Ubuntu 18.04, a MYSQL-SERVER >= 5.7wersja była jedyną rzeczą, która faktycznie rozwiązała problem
Miguelgraz,
1
To jest ten, który działał w instalacji mysql Ubuntu 18.04. MYSQL-SERVER >= 5.7wersja, aby być precyzyjnym.
Sathish Manohar
34

Zmień hasło root MySQL.

Ta metoda uwidacznia hasło w historii wiersza poleceń, te polecenia powinny być uruchamiane jako root.

  1. Zaloguj się za pomocą narzędzia wiersza poleceń mysql:

    mysql -uroot -poldpassword
  2. Uruchom to polecenie:

    SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');

lub

  1. Uruchom to polecenie, które ustawia hasło dla bieżącego użytkownika (w tym przypadku `` root ''):

    SET PASSWORD = PASSWORD ('nowe hasło');

faisalbhagat
źródło
26

Najpierw uruchom to polecenie:

sudo mysql

a następnie powinieneś sprawdzić, której metody uwierzytelniania używają twoje konta użytkowników MySQL, więc uruchom to polecenie

SELECT user,authentication_string,plugin,host FROM mysql.user;

teraz możesz już zobaczyć coś takiego:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

w tabeli, która jest powyżej, możesz zobaczyć, że stan wszystkich kont użytkowników mysql i jeśli ustawiłeś hasło dla konta root, zanim zobaczysz mysql_native_passwordw kolumnie wtyczki auth_socket. Podsumowując, aby zmienić hasło roota, powinieneś uruchomić:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Pamiętaj, aby zmienić hasło na wybrane przez siebie silne hasło. Następnie, aby przeładować serwer i wprowadzić w życie nowe zmiany, uruchom to;

FLUSH PRIVILEGES;

Więc ponownie sprawdź metody uwierzytelniania, które zastosował twój mysql, za pomocą tego polecenia:

SELECT user,authentication_string,plugin,host FROM mysql.user;

a teraz wynik to:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

jak widać w tabeli grantów, które posiada Twoje konto root mysql_native_password . teraz możesz wyjść z powłoki MYSQL

exit;

To wszystko. Po prostu powinieneś ponownie uruchomić mysql przez sudo service mysql restart. Teraz możesz łatwo zalogować się do mysql jako konto root za pomocą hasła.

Amir karim
źródło
Myślę, że to pochodzi z DigitalOcean, który był jedynym rozwiązaniem działającym dla mnie na Ubuntu 18.04 działającym na Virtual Box
Kemal
działa idealnie w ubuntu 18.04. Dzięki.
mahfuz
12

Jeśli chcesz zmienić hasło roota MySQL, w terminalu wpisz:

sudo dpkg-reconfigure mysql-server-5.5

Demon MySQL zostanie zatrzymany i zostaniesz poproszony o wprowadzenie nowego hasła.

user2206324
źródło
1
To znacznie lepszy sposób na zrobienie tego. Nie mogłem uruchomić poprzednich poleceń z powodu błędu mysql ...
Andy
sudo dpkg-reconfigure mysql-server-5.7 na ubuntu 16.04
Nick Barrett
2
Uruchomiłem sudo dpkg-reconfigure mysql-server-5.7na Ubuntu 16.04, nie monitował o wprowadzenie nowego hasła.
Franck Dernoncourt
Jeśli tak mówi mysql-server is broken or not fully installed, można użyć sudo apt purge mysql*isudo apt install mysql-server
Pavel
12

To działa jak urok. Zrobiłem to dla Ubuntu 16.04. Pełny zasługa poniższego linku, ponieważ dostałem go stamtąd. [ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts][1]

Zatrzymaj MySQL

sudo service mysql stop

Utwórz katalog usługi MySQL. sudo mkdir / var / run / mysqld

Daj użytkownikowi MySQL uprawnienia do zapisu w katalogu usług.

sudo chown mysql: /var/run/mysqld

Uruchom MySQL ręcznie, bez sprawdzania uprawnień i sieci.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Zaloguj się bez hasła.

mysql -uroot mysql

Zaktualizuj hasło użytkownika root. upewnij się, że przynajmniej konto roota zostanie zaktualizowane przez poniższe zapytanie. dokonaj wyboru i sprawdź istniejące wartości, jeśli chcesz

UPDATE mysql.user SET 
authentication_string=PASSWORD('YOURNEWPASSWORD'), 
plugin='mysql_native_password' WHERE User='root';
EXIT;

Wyłącz MySQL.

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Uruchom usługę MySQL normalnie.

sudo service mysql start
jaszczurka
źródło
11
  1. Zatrzymaj usługę MySQL sudo mysql stop

  2. Utwórz katalog usługi MySQL. sudo mkdir / var / run / mysqld

  3. Daj użytkownikowi MySQL uprawnienia do zapisu w katalogu usług. sudo chown mysql: / var / run / mysqld

  4. Uruchom MySQL ręcznie, bez sprawdzania uprawnień i sieci. sudo mysqld_safe --skip-grant-table --skip-networking &

5. Zaloguj się bez hasła. mysql -uroot mysql

6. Zaktualizuj hasło użytkownika root.

AKTUALIZACJA mysql.user SET authentication_string = PASSWORD ('YOURNEWPASSWORD'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = '%'; WYJŚCIE;

  1. Wyłącz MySQL. sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

  2. Uruchom usługę MySQL normalnie. usługa sudo mysql start

Rahul Raveendran
źródło
1
Cześć, ta odpowiedź działa dla mnie, ale musiałem użyć innego polecenia: UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';bez AND Host='%'. Dzięki!
David Corral
10

To rozwiązanie należy do poprzedniej wersji MySQL. Logując się do MySQL przy użyciu uwierzytelniania przez gniazdo, możesz to zrobić.

sudo mysql -u root

Następnie można uruchomić następujące polecenie.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Szczegóły dostępne są tutaj .

Huseyin
źródło
1
Nie mogłem się zalogować jako, sudo mysql -u rootale mogłem to zrobić jako sudo mysqli uruchomić ALTER USERpolecenie.
itsols
Otrzymuję następujący błąd: „Twoje hasło nie spełnia aktualnych wymagań zasad”. Udało mi się to poprawić tutaj: stackoverflow.com/a/43094873/9073437 . Po ustawieniu zmodyfikowanej polityki haseł wszystko działało dobrze.
Grandtour
10

To jest rozwiązanie dla mnie. Pracuję w Ubuntu 18.04: https://stackoverflow.com/a/46076838/2400373

Ale ważna jest ta zmiana w ostatnim kroku:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost'; 
juanitourquiza
źródło
Boże! Wielkie dzięki! To jedyny sposób, który działał w moim przypadku. Zapomnij o tym głupim, bezpiecznym skrypcie instalacyjnym, ponieważ utrzymywał moją świeżo zainstalowaną wersję 5.7 otwartą dla użytkowników bez pytania o hasło ... jeśli Linux / Ubuntu jest dla użytkowników świadomych bezpieczeństwa, dlaczego tak trudno jest chronić kluczową aplikację, taką jak serwer MySQL ?
Thomas Urban
7

W przypadku Ubuntu 18.04 i mysql w wersji 14.14 Distrib 5.7.22 wykonaj poniższy krok, aby zresetować hasło mysql.

Krok 1

sudo systemctl stop mysql

Krok 2

sudo systemctl edit mysql

To polecenie otworzy nowy plik w edytorze nano, którego użyjesz do edycji nadpisań usługi MySQL. Zmieniają one domyślne parametry usługi MySQL. Ten plik będzie pusty, więc dodaj następującą zawartość:

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking

Krok 3

sudo systemctl daemon-reload
sudo systemctl start mysql

Krok 4

sudo mysql -u root

Krok 5

FLUSH PRIVILEGES;

Krok 6

UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';

Krok 7

UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';

Krok 8

sudo systemctl revert mysql

i w końcu

sudo systemctl restart mysql

Teraz ciesz się

Masum Billah
źródło
Myślę, że przegapiłeś treść kroku 2. Jest niekompletna.
Lucas Mendes Mota Da Fonseca
6

Powtarzając komentarz rogerdpack: jeśli nie znasz hasła roota MySQL i nie obchodzą Cię dane / ustawienia MySQL, możesz je ponownie zainstalować i zresetować hasło roota w następujący sposób:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get install -y mysql-server mysql-client 

Podczas instalacji możesz wybrać hasło roota:

wprowadź opis obrazu tutaj

Franck Dernoncourt
źródło
2
Żałuję, że nie zacząłem tutaj, zamiast tracić godzinę na walenie głową, próbując zresetować hasło.
Eric Seastrand
3

Jeśli znasz swoje aktualne hasło, nie musisz zatrzymywać serwera mysql. Otwórz terminal ubuntu. Zaloguj się do mysql używając:

mysql - username -p

Następnie wpisz swoje hasło. To przeniesie Cię do konsoli mysql. W konsoli wpisz:

> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

Następnie opróżnij uprawnienia za pomocą:

> flush privileges;

Wtedy wszystko jest gotowe.

Peter Mutisya
źródło
2

Kiedy używasz MySQL w PASSWORD()systemie, w którym chcesz zmienić hasło, może to spowodować pojawienie się hasła w dzienniku MySQL w postaci zwykłego tekstu [ źródło ]. Utrzymywanie ich, ich kopii zapasowych itp. Tak bezpiecznych, jak hasło brzmi dla mnie jak koszmar, więc wolę robić to w następujący sposób:

  1. Na komputerze lokalnym uruchom to z hasłem:

     mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")

    Zwróć uwagę na spację z przodu, aby zapobiec pojawianiu się go w historii basha (w przypadku innych dystrybucji niż Ubuntu może to działać inaczej - źródło ).

  2. Na komputerze serwera wykonaj następujące polecenie, aby zmienić jego hasło roota MySQL (zastąp myhashhashem hasła wydrukowanym przez pierwsze polecenie):

    mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
  3. Opcjonalnie, bądźmy trochę paranoikowi: na komputerze lokalnym wyczyść ekran terminala za pomocą cleari wyczyść przewijanie terminala wirtualnego, aby ukryć hasło w postaci zwykłego tekstu pojawiające się w powyższym poleceniu.

taniusz
źródło
2

Aby zaktualizować hasło użytkownika „root” MySQL, musisz mieć na uwadze, że będziesz potrzebować do tego uprawnień superużytkownika. Jeśli masz uprawnienia superużytkownika, wypróbuj następujące polecenia:

MySQL 5.7.6 i nowsze

sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass

MySQL 5.7.5 i starsze

sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass
alvaropaco
źródło
2

Nie potrzebujesz tego wszystkiego. Po prostu zaloguj się:

mysql -u root -p

Następnie zmień hasło bieżącego użytkownika jako mysql>monit:

mysql> set password=password('the_new_password');
mysql> flush privileges;
mprivat
źródło
1
To najprostszy sposób! Działa dla mnie z mysql 5.7.21-0ubuntu0.17.10.1
Sergio Belevskij
2

Większość odpowiedzi na ten temat jest nieaktualna; Do czasu napisania tej odpowiedzi w MySQL zaszły dwie główne zmiany:

1- pole „Hasło” w tabeli użytkowników zostało zastąpione kolumną „ciąg_autoryzacji”.

2- Funkcja szyfrowania „Hasło”: HASŁO („jakiegoś tekstu”) jest przestarzałe.

Aby uzyskać więcej informacji, skorzystaj z tego łącza : dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

Elie Asmar
źródło
1

Zamiast resetowania hasła można obejść problem na komputerze lokalnym, jeśli skonfigurowano phpmyadminpołączenie bez podawania hasła lub nazwy użytkownika. Sprawdź to poprzez uruchomienie mysql, apacheitd. Mam xamppzainstalowany na moim komputerze lokalnym. Więc uruchomienie xampp spowoduje uruchomienie wszystkich niezbędnych usług. Teraz http://localhost/phpmyadminpokaże mi wszystkie bazy danych. Potwierdza to, że zapisałeś nazwę użytkownika i hasło w pliku konfiguracyjnym phpmyadmin, który można znaleźć w miejscu phpmyadmininstalacji. Jeśli xamppzainstalowałeś, phpmyadminfolder można znaleźć w folderze głównym xamppinstalacji. Wyszukaj słowo passwordw config.inc.phppliku. Tam znajdziesz password i username.

józef
źródło
1

Możesz łatwo zmienić hasło mysql, jeśli zostanie wdrożone na xampp za pomocą dostarczonego interfejsu użytkownika phpadmin.

phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)
Mohd Arshil
źródło
1

dla mysql 5.6 to polecenie działa i możesz ustawić hasło za pomocą kreatora:

sudo dpkg-reconfigure mysql-server-5.6
MSS
źródło
Próbowałem, ale to nie działa .. Otrzymuję ten poniższy błąd .. czy możesz pomóc? Ta instalacja MySQL jest już zaktualizowana do wersji 5.7.21, użyj --force, jeśli nadal musisz uruchomić mysql_upgrade
Vijaysinh Parmar
1

Możesz wypróbować następujące kroki, aby zresetować hasło root mysql 5.7:

Najpierw zatrzymaj usługę MySQL

sudo /etc/init.d/mysql stop 

Zaloguj się jako root bez hasła sudo mysqld_safe --skip-grant-tablesi

Po zalogowaniu terminal mysql powinieneś potrzebować więcej poleceń:

use mysql;




UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';


flush privileges;


sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Po ponownym uruchomieniu serwera mysql Jeśli nadal napotykasz błąd, odwiedź: Zresetuj hasło root MySQL 5.7 Ubuntu 16.04

Inderpal Singh
źródło
1

Możesz użyć tego polecenia:

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

potem użyj flush:

FLUSH PRIVILEGES;
Rahul Karande
źródło
1

Ustawianie hasła MySQL

  1. zatrzymaj usługę bazy danych MySQL

sudo /etc/init.d/mysql stop

  1. utwórz nowy katalog mysqld

sudo mkdir / var / run / mysqld /

  1. daj dostęp użytkownikowi mysql

sudo chown mysql / var / run / mysqld /

  1. uruchom MySQL w trybie awaryjnym ...

sudo mysqld_safe --skip-grant-table &

  1. logowanie do serwera bazy danych bez hasła

sudo mysql -u root

  1. użyj domyślnej bazy danych mysql

użyj mysql;

  1. zmienić hasło roota

update user set authentication_string=PASSWORD("New_Passwore_Here") where User = 'root';

  1. Zapisz zmiany

    przywileje do spłukiwania; wyjście;

  2. zatrzymaj MySQL safe_mode i uruchom domyślną usługę MySQL

sudo /etc/init.d/mysql stop

sudo /etc/init.d/mysql start

  1. zaloguj się ponownie do bazy danych MySQL, używając nowego hasła roota

sudo mysql -u root -p

*** Źródło: https://websiteforstudents.com/resetting-mysql-root-password-on-ubuntu-16-04-17-10-and-18-04-lts/

Viraj
źródło
1

Jeśli znasz hasło użytkownika „root”, zaloguj się do mysql za pomocą tych poświadczeń. Następnie wykonaj następujące zapytanie, aby zaktualizować hasło.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
Udara Seneviratne
źródło
0

podczas zmiany / resetowania hasła MySQL poniższe polecenia nie pomogły. Odkryłem, że wchodzenie do terminala i używanie tych poleceń jest bezcelowe. zamiast tego użyj polecenia sudo zatrzymaj wszystko. USUŃ SYSTEM 32 dla Windows, jeśli to pomaga.

Skała
źródło
1
Pytanie dotyczy ubuntusystemu operacyjnego, a nie okien. Co masz na myśli mówiąc o DELETE SYSTEM 32 dla Windows ?
EhsANT
0

Aby zresetować lub zmienić hasło wpisz sudo dpkg-reconfigure mysql-server-X.X(XX to wersja mysql, którą zainstalowałeś, tj. 5.6, 5.7), a następnie pojawi się ekran, w którym musisz ustawić nowe hasło, a następnie w następnym kroku potwierdź hasło i poczekaj chwilę. Otóż ​​to.

Gaurav Paliwal
źródło
0

Musiałem iść tą drogą na Ubuntu 16.04.1 LTS. Jest to trochę mieszanka niektórych innych odpowiedzi powyżej - ale żadna z nich nie pomogła. Spędziłem godzinę lub więcej próbując wszystkich innych sugestii ze strony MySql do wszystkiego na SO, w końcu udało mi się to współpracować z:

Uwaga: podczas gdy pokazywał Wprowadź hasło dla użytkownika root, nie miałem oryginalnego hasła, więc po prostu wprowadziłem to samo hasło być używane jako nowe hasło.

Uwaga: nie było pliku /var/log/mysqld.log only /var/log/mysql/error.log

Zauważ również, że to nie zadziałało dla mnie:
sudo dpkg-reconfigure mysql-server-5.7

Ani też:
sudo dpkg-reconfigure --force mysql-server-5.5

Utwórz katalog usługi MySQL.
sudo mkdir /var/run/mysqld

Daj użytkownikowi MySQL uprawnienia do zapisu w katalogu usług.
sudo chown mysql: /var/run/mysqld

Następnie:

  1. zabij aktualny pid mysqld
  2. uruchom mysqld z sudo / usr / sbin / mysqld &
  3. run / usr / bin / mysql_secure_installation Dane

    wyjściowe z mysql_secure_installation

    root @ myServer: ~ # / usr / bin / mysql_secure_installation

    Zabezpieczenie wdrożenia serwera MySQL.

    Wprowadź hasło dla użytkownika root:

    WTYCZKA ZATWIERDZENIA HASŁA może służyć do testowania haseł i zwiększania bezpieczeństwa. Sprawdza siłę hasła i pozwala użytkownikom ustawić tylko te hasła, które są wystarczająco bezpieczne. Czy chcesz skonfigurować wtyczkę VALIDATE PASSWORD?

    Naciśnij y | Y, aby wybrać Tak, dowolny inny klawisz, aby wybrać Nie: nie. Używanie istniejącego hasła użytkownika root. Zmienić hasło dla roota? ((Naciśnij y | Y, aby wybrać TAK, dowolny inny klawisz, aby wybrać NIE): y

    Nowe hasło:

    Ponownie wprowadź nowe hasło: Domyślnie instalacja MySQL ma anonimowego użytkownika, umożliwiając każdemu zalogowanie się do MySQL bez konieczności tworzenia konta użytkownika. Jest to przeznaczone tylko do testowania i aby instalacja przebiegła nieco płynniej. Należy je usunąć przed przejściem do środowiska produkcyjnego.

    Usunąć anonimowych użytkowników? (Naciśnij y | Y, aby wybrać Tak, dowolny inny klawisz, aby Nie): y Sukces.

    Zwykle root powinien mieć możliwość łączenia się tylko z „localhost”. Gwarantuje to, że ktoś nie będzie mógł odgadnąć hasła roota z sieci.

    Nie zezwalać na zdalne logowanie przez roota? (Naciśnij y | Y, aby wybrać Tak, dowolny inny klawisz, aby Nie): y Sukces.

    Domyślnie MySQL zawiera bazę danych o nazwie „test”, do której każdy ma dostęp. Jest to również przeznaczone tylko do testowania i należy je usunąć przed przejściem do środowiska produkcyjnego.

    Usunąć testową bazę danych i uzyskać do niej dostęp? (Naciśnij y | Y, aby wybrać Tak, dowolny inny klawisz, aby Nie): y

    • Upuszczam testową bazę danych ... Sukces.

    • Usuwanie uprawnień do testowej bazy danych ... Powodzenie.

    Ponowne załadowanie tabel uprawnień zapewni, że wszystkie dotychczas wprowadzone zmiany zaczną obowiązywać natychmiast.

    Załadować teraz ponownie tabele uprawnień? (Naciśnij y | Y, aby wybrać Tak, dowolny inny klawisz, aby Nie): y Sukces.

    Gotowe!

JGlass
źródło