Muszę zresetować hasło roota mojej lokalnej instalacji mysql, ale nie pozwoli mi to. Próbowałem tego:
$ sudo /etc/init.d/mysql stop
* Stopping MySQL database server mysqld [ OK ]
[1]- Exit 1 sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking
[2]+ Exit 1 sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking
reg@regDesktopHome:~$ sudo mysqld --skip-grant-tables &
[1] 13651
reg@regDesktopHome:~$ 140627 19:02:02 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
reg@regDesktopHome:~$ mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
reg@regDesktopHome:~$ sudo mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[1]+ Exit 1 sudo mysqld --skip-grant-tables
Jak mogę zresetować hasło? edytuj 1 Mam to:
$ ps ax| grep mysql
16515 ? Ssl 0:00 /usr/sbin/mysqld
16551 pts/23 S+ 0:00 grep --color=auto mysql
reg@regDesktopHome:~/semios/v3upgrade$ sudo kill -9 16515
reg@regDesktopHome:~/semios/v3upgrade$ ps ax| grep mysql
16678 ? Ssl 0:00 /usr/sbin/mysqld
16715 pts/23 S+ 0:00 grep --color=auto mysql
reg@regDesktopHome:~/semios/v3upgrade$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
wygląda na to, że proces automatycznie uruchamia ponownie mysql, jak tylko go zabiję ...
dpkg-reconfigure mariadb-server-10.1
zadziałało w MariaDB, gdy wszystkie inne rozwiązania nie. Dziękuję Ci za to.dpkg-reconfigure
nie monitował o hasło dla mnie .. czy istnieje sposób, aby je wymusić?Referencje zaczerpnięte z tego bloga:
Krok 1: Zatrzymaj usługę MySQL.
Krok 2: Zabij wszystkich działających mysqld.
Krok 3: Uruchomienie mysqld w trybie awaryjnym.
Krok 4: Uruchom klienta MySQL
Krok 5: Po udanym logowaniu wykonaj polecenie, aby zmienić dowolne hasło.
Krok 6: Możesz zaktualizować hasło root mysql.
dla mysql> 5.7 użyj tego zamiast wyżej:
Krok 7: Wykonaj to polecenie.
Krok 8: Wyjdź z konsoli mysql
Krok 9: Zabij mysqld_safe i uruchom mysql
źródło
sudo service mysql stop
, niesudo stop mysql
sudo killall mysqld_safe && sudo service mysql start
a następnie spróbuj zalogować się ponownieALTER USER root IDENTIFIED BY 'NEW_PASSWORD_HERE'
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEWPASS';
. Możesz przeczytać o tym tutaj . Teoretycznie (nie próbowałem) powinieneś móc zalogować się do mysql bez hasła, jeśli "sudo su -" zostanie rootem.ALTER USER ...
nie działa, użyjUPDATE mysql.user SET authentication_string = PASSWORD('NEWPASS'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
Pod Ubuntu 16.04 i
mysql-server-5.7
poprawną odpowiedzią jest ostatni komentarz olafure,dpkg-reconfigure mysql-server-5.7
już nie działa.Teraz w konsoli mysql
>mysql
Uruchom ponownie dobry
mysql
procesSprawdź swoje nowe hasło
źródło
mysqld_safe
wykonanie, pojawia się błąd:Directory '/var/run/mysqld' for UNIX socket file don't exists.
. Więc pobiegłemsudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld
i reszta powyższej odpowiedzi działa. Czy to błąd w Ubuntu 16? Nigdy wcześniej nie spotkałem się z tymi wszystkimi problemami podczas aktualizacji haseł.Począwszy od MySQL 5.7 , podczas początkowej instalacji, jeśli pozostawisz hasło puste, wtedy dla tego użytkownika uwierzytelnianie będzie oparte na
auth_socket
wtyczce.Prawidłowy sposób zmiany hasła to:
https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/
źródło
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
--skip-grant-tables
opcji i sprawdź, czy to rozwiązanie działa.--skip-grant-tables
opcji nie mogę nawet zalogować się do MySQL jako root. MówiERROR 1698 (28000): Access denied for user 'root'@'localhost'
mysqld_safe
) jako root bez hasła. Mam Ubuntu 18.04 i mysql-server-5.7. Ta odpowiedź pomogła mi askubuntu.com/a/767252/585252 (patrz dolna część)Wydawało mi się, że nic z pozostałych odpowiedzi nie działa. To jest moje rozwiązanie:
Tam:
Następnie:
źródło
2017-05-30T06:33:22.291126Z mysqld_safe Logging to syslog. 2017-05-30T06:33:22.294375Z mysqld_safe Logging to '/var/log/mysql/error.log'. 2017-05-30T06:33:22.296874Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld
dotyczy mysql 5.7 i ubuntu 18.04 .Utwórz plik z tym:
Zatrzymaj serwer mysql i uruchom to:
Sprawdź tutaj po więcej szczegółów: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
źródło