17 dicembre 2008

Mysql : Cambiare la password di root o di un determinato utente

Nel normale utilizzo di un server Mysql si può incorrere in diverse situazioni in cui è necessario dover settare o resettare la password per un determinato utente.
Qui di seguito analizziamo le situazioni in cui si può incorrere e i relativi metodo di risoluzione di tali problematiche.

SETTARE LA PASSWORD DI ROOT LA PRIMA VOLTA
Il server di Mysql appena installato e lanciato per la prima volta non associa nessuna password di default per l'utente root.
Ecco 2 modi in cui poter settare la password per l'utente root nel caso in cui non sia stata ancora settata.
La prima soluzione è la seguente ed è seguita mediante il comando mysqladmin
mysqladmin -u root password NEWPASSWORD

Una seconda soluzione è eseguire una serie di comandi mysql per poter settare la password. E' necessario seguire i seguenti passaggi:
1) Loggarsi al server mysql, e eseguire i seguenti comandi sul promt di mysql:
mysql -u root

2) Cambiare la password:
SET PASSWORD FOR root@localhost = PASSWORD('tua_nuova_password');

In questo modo al prossimo tentativo di login è sufficiente utilizzare il seguente comando
mysql -u root -p

ed inserire la password per loggarsi.

RESETTARE LA PASSWORD DIMENTICATA
Può accadere che ci si dimentichi della password di root di un sistema db MySQL. Per resettare la password è necessario operare come segue: fermare mysql - su sistemi *nix da root con :
/etc/init.d/mysql stop

su windows - con privilegi di amministrazione - con:
Menu Start --> Esegui --> cmd --> services.msc
localizzare il servizio MySQL quindi selezionarlo con il tasto destro e stopparlo.

Una volta fermato MySQL:
# riavviarlo con (linux):
mysqld_safe --skip-grant-tables


su windows:
portarsi nella sottocartella bin della cartella in cui si trova il programma mysql, quindi:
mysqld --skip-grant-tables


aprire una nuova shell mysql (da windows o linux) e digitare solo:
mysql -h localhost


si è avuto accesso senza inserire la password. Per modificarla:
use mysql;
UPDATE user SET password=password("NUOVAPASSWORD") WHERE user="root";

Una volta completata l'operazione, fermare di nuovo il server MySQL e riavviarlo normalmente, cioè come demone o servizio.
SETTARE LA PASSWORD PER UN UTENTE
1) Loggarsi al server Mysql
mysql -u root -p

2) Usare il database Mysql (digitare il comando sul promt mysql>):
use mysql;

3) Cambiare la password per l'utente utenteProva:
update user set password=PASSWORD("NEWPASSWORD") where User='utenteProva';

4) Ricaricare i privilegi
flush privileges;

Questi esempi dovrebbero coprire la maggiorparte delle situzioni in cui si può incorrere.

Nessun commento: