Nastavenie hesla koreňového používateľa MySQL v systéme OS X

Práve som nainštaloval MySQL na Mac OS X. Ďalším krokom bolo nastavenie hesla používateľa root, takže som to urobil ďalej:

  1. Spustite aplikáciu terminál na prístup k príkazovému riadku Unixu.

  2. Pod príkazovým riadkom Unix som vykonal tieto príkazy:

     $ cd /usr/local/mysql/bin
     $ ./mysqladmin -u root password 'password'

Ale keď vykonám príkaz

$ ./mysql -u root, zobrazí sa táto odpoveď:

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>

Do príkazového riadku mysql sa dostanem bez akéhokoľvek hesla!

Prečo je to tak?

Po prihlásení do terminálu MySQL vyskúšajte príkaz FLUSH PRIVILEGES. Ak to nepomôže, skúste v termináli MySQL vykonať nasledujúcu sadu príkazov

$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

Zmeňte heslo NEWPASSWORD na ľubovoľné heslo, ktoré chcete. Všetko by malo byť nastavené!

Aktualizácia: Od verzie MySQL 5.7 bolo pole heslo premenované na autentifikačný_reťazec. Pri zmene hesla použite na zmenu hesla nasledujúci dotaz. Všetky ostatné príkazy zostávajú rovnaké:

mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';

Aktualizácia: Na verzii 8.0.15 (možno už pred touto verziou) nefunguje funkcia PASSWORD(), ako je uvedené v komentároch nižšie. Musíte použiť:

UPDATE mysql.user SET authentication_string='password' WHERE User='root';

Komentáre (8)

Ak si nepamätáte heslo, ktoré ste nastavili pre root, a potrebujete ho obnoviť, postupujte podľa týchto krokov:

  1. Zastavte server mysqld, to sa líši v závislosti od inštalácie
  2. Spustite server v núdzovom režime s obídením oprávnení

sudo mysqld_safe --skip-grant-tables;

  1. V novom okne sa pripojte k databáze, nastavte nové heslo a vymažte oprávnenia & ukončite:

mysql -u root

Pre MySQL staršie ako MySQL 5.7 použite:

UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';

Pre MySQL 5.7+ použite:

USE mysql;

UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';

Obnovte a ukončite:

FLUSH PRIVILEGES;

\q

  1. Zastavte server v núdzovom režime a spustite normálny server. Nové heslo by teraz malo fungovať. Mne to fungovalo ako čaro :)
Komentáre (10)

Po nainštalovaní MySQL musíte vytvoriť heslo "root". Ak si nezadáte heslo koreňa, potom žiadne heslo koreňa neexistuje a na prihlásenie nepotrebujete heslo.

Takže, ako už bolo povedané, musíte vytvoriť heslo koreňa.

Pomocou terminálu zadajte nasledujúce údaje:

Inštalácia: Nastavte heslo používateľa root:

/usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE

Ak ste'urobili chybu alebo potrebujete zmeniť heslo koreňového užívateľa, použite nasledujúci postup:

Zmeniť root heslo:

cd /usr/local/mysql/bin/
./mysql -u root -p
> Enter password: [type old password invisibly]

use mysql;
update user set password=PASSWORD("NEW_PASSWORD_HERE") where User='root';
flush privileges;
quit
Komentáre (1)