sql >> Databáze >  >> RDS >> Mysql

Jak změnit heslo kořenového účtu MySQL na CentOS7?

Jakou verzi mySQL používáte? Používám 5.7.10 a měl jsem stejný problém s přihlášením jako root

Existují 2 problémy - proč se nemohu přihlásit jako root a proč nemohu použít 'mysqld_safe` ke spuštění mySQL k resetování hesla root.

Nemám žádnou odpověď na nastavení hesla uživatele root během instalace, ale zde je postup, jak resetovat heslo uživatele root

Upravit počáteční heslo uživatele root při instalaci lze zjistit spuštěním

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

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

  1. systemd se nyní používá k péči o mySQL namísto mysqld_safe (proto se zobrazí příkaz -bash: mysqld_safe: command not found chyba – není nainstalován)

  2. user struktura tabulky se změnila.

Chcete-li tedy resetovat heslo uživatele root, stále spouštíte mySQL pomocí --skip-grant-tables a aktualizujte user tabulka, ale způsob, jakým to uděláte, se změnil.

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

Reference

Jak se píše na http://dev.mysql.com /doc/refman/5.7/en/mysqld-safe.html ,

Což vás zavede na http://dev .mysql.com/doc/refman/5.7/en/server-management-using-systemd.html kde se zmiňuje systemctl set-environment MYSQLD_OPTS= směrem ke spodní části stránky.

Příkazy pro resetování hesla jsou ve spodní části http:// dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html



  1. MySQL – spojení mezi databázemi na různých serverech pomocí Pythonu?

  2. Vrací dotaz ve formátu po řádcích místo sloupce

  3. Efektivní datový model pro dotazy na rozsah

  4. Jak získat den v roce z data v PostgreSQL