Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zmienić hasło do konta root MySQL w CentOS7?

Jakiej wersji mySQL używasz? Używam wersji 5.7.10 i miałem ten sam problem z zalogowaniem się jako root

Są 2 problemy - dlaczego nie mogę zalogować się jako root i dlaczego nie mogę użyć 'mysqld_safe` do uruchomienia mySQL w celu zresetowania hasła roota.

Nie mam odpowiedzi na temat ustawiania hasła roota podczas instalacji, ale oto, co musisz zrobić, aby zresetować hasło roota

Edytuj początkowe hasło roota podczas instalacji można znaleźć, uruchamiając

grep 'temporary password' /var/log/mysqld.log

http://dev.mysql.com /doc/refman/5.7/en/linux-installation-yum-repo.html

  1. systemd jest teraz używany do obsługi mySQL zamiast mysqld_safe (dlatego otrzymujesz -bash: mysqld_safe: command not found błąd - nie jest zainstalowany)

  2. user struktura tabeli uległa zmianie.

Aby zresetować hasło roota, nadal uruchamiasz mySQL z --skip-grant-tables opcje i zaktualizuj user tabeli, ale zmienił się sposób, w jaki to robisz.

1. Stop mysql:
systemctl stop mysqld

2. Set the mySQL environment option 
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

3. Start mysql usig the options you just set
systemctl start mysqld

4. Login as root
mysql -u root

5. Update the root user password with these mysql commands
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword')
    -> WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit

*** Edit ***
As mentioned my shokulei in the comments, for 5.7.6 and later, you should use 
   mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Or you'll get a warning

6. Stop mysql
systemctl stop mysqld

7. Unset the mySQL envitroment option so it starts normally next time
systemctl unset-environment MYSQLD_OPTS

8. Start mysql normally:
systemctl start mysqld

Try to login using your new password:
7. mysql -u root -p

Odniesienie

Jak mówi http://dev.mysql.com /doc/refman/5.7/en/mysqld-safe.html ,

Co prowadzi do http://dev .mysql.com/doc/refman/5.7/en/server-management-using-systemd.html gdzie wspomina systemctl set-environment MYSQLD_OPTS= u dołu strony.

Polecenia resetowania hasła znajdują się na dole http:// dev.mysql.com/doc/refman/5.7/en/resetowanie-permissions.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Liczba wierszy z PDO

  2. Zatwierdź dane w kontenerze mysql

  3. MySQL:wiele tabel czy jedna tabela z wieloma kolumnami?

  4. .NET Core 2.0 z MySQL:Określony klucz był za długi; maksymalna długość klucza to 3072 bajty

  5. Połączenie PHP nie powiodło się:SQLSTATE[HY000] [2002] Połączenie odrzucone