A volte per qualche motivo si ha la necessità di allestire un server in locale per effettuare dei piccoli lavori o test. Come ben sapete per accedere al server MySQL bisogna effettuare un login, con un username (di default corrisponde a “root”) e di una password scelta durante l’installazione. In questi giorni ho avuto la necessità di installare in locale un CMS (Joomla) per dei test. Il problema è che stavo lavorando su un sistema dove in precedenza avevo già installato e configurato un server LAMP di cui non ricordavo i dati per il login. Quindi ho trovato la seguente soluzione, la quale non permette il recupero della password di MySQL, bensì permette di cambiarla.

La prima cosa da fare è di aprire un terminale, effettuare il login come amministratore e stoppare qualsiasi servizio inerente al server LAMP. Per far questo basta utilizzare i seguenti due comandi:

# /etc/init.d/apache2 stop
# /etc/init.d/mysql stop
Una volta stoppati i servizi bisogna utilizzare il seguente comando per fare in modo di avviare MySQL senza la richiesta di password:

# mysqld_safe –skip-grant-tables &
A questo punto è possibile connettersi al server con il seguente comando:

# mysql -u root mysql
Ora siete connessi al server, non vi resta che aggiornare la password con la seguente sintassi:

mysql> UPDATE user SET password=PASSWORD(“NEW_PASSWORD”) WHERE User=’root’;
mysql> FLUSH PRIVILEGES;
mysql> exit
Ora, perché la password abbia effetto, basterà riavviare il server con i seguenti due comandi:

# /etc/init.d/apache2 stop
# /etc/init.d/mysql stop
# /etc/init.d/apache2 start
# /etc/init.d/mysql start

Molto interessante.