Reset password di root di MySql

Ogni tanto capita di dimenticare la password di root di MySql.

In tal caso viene a mancare la possibilità di accedere al server per fare manutenzione, restore, backup dei database.

Per ripristinare una password di accesso come root è necessario effettuare le seguenti operazioni:

  1. Scrivere il seguente comando in un file di testo e salvarlo in un file denominato mysql-init.txt:
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
  2. Chiudere il servizio MySql dalla maschera dei servizi di windows.
  3. Quando il server viene eseguito potrebbe utilizzare un file di dati non standard. In tal caso è necessario conoscere la posizione di questo file altrimenti il processo mysqld non si avvierà. La posizione del file si può trovare guardando il comando che viene lanciato dal servizio. Se questo comando contiene il parametro —defaults-file= allora è necessario copiare la posizione di questo file prima di eseguire il comando successivo.
  4. Aprire il command prompt in modalità “Esegui come amministratore“.
  5. Eseguire il comando seguente impostando i valori dei due file come da istruzioni precedenti:
    mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file=c:\tmp\mysql-init.txt
  6. Fermare l’esecuzione del comando con CTRL+C.
  7. A questo punto il server è pronto per essere eseguito con il nuovo utente di root.

PHPMyAdmin e versione di PHP: incompatibilità

Alcune volte capita che phpmyadmin fornisca dei warning in merito a funzioni deprecate.

Questo capita in quanto la versione di PHP utilizzata da apache non corrisponde a quella di phpmyadmin, di conseguenza ci sono due strade:

  1. Cambiare versione di PHP o aggiornare phpmyadmin
  2. Chiedere a phpmyadmin di ignorare i warnings

Per ignorare i warnings è sufficiente immettere il seguente testo all’interno del file /etc/phpmyadmin/config.inc.php:

$cfg['SendErrorReports'] = 'never';

Configurare MySql in Ubuntu

L’installazione di Mysql avviene con il seguente comando:

sudo apt install mysql-server

L’installazione di Mysql workbench avviene con il seguente comando snap:

sudo apt install mysql-workbench-community

Quando mysql workbench viene installato usando snap, questo esegue l’applicativo in una sandbox che non gli consente di salvare la password nell’ambeiente gnome, di conseguenza vengono segnalati errori durante l’accesso con password al database. Per eliminare la sandbox fornire il seguente comando:

sudo snap connect mysql-workbench-community:password-manager-service :password-manager-service

Per consentire all’utente root di collegarsi con mysql via rete (127.0.0.1) è necessario fornire la seguente autorizzazione:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Per abilitare mysql con php utilizzare il comando è necessario abilitare il relativo modulo nel file php.ini (/etc/php/8.0/apache2/php.ini):

extension=pdo_mysql.so

sudo apt-get install php8.0-mysql

e poi si abilita il modulo php:

sudo phpenmod pdo_mysql

e si fa il restart di apache2:

sudo systemctl restart apache2