A volte durante l'installazione di MySQL l'utente non imposta la password di root, quindi viene utilizzato il metodo unix_socket
come autorizzazione. Se viene utilizzata questa autorizzazione, solo un superutente del sistema o un utente con privilegi sudo sarà in grado di autenticarsi come utente root.
Quando si utilizza mysql_secure_installation
, si tenterà di cambiare la password, nel qual caso si otterrà un errore da mysql SET PASSWORD
has no significance for user'root
'@
'localhost
'. Vediamo come risolverlo ed eliminarlo ulteriormente.
Il nome completo dell'errore è il seguente:
SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.
L'errore è tradotto come:
"Non ha senso eseguire il metodo SET PASSWORD
per'root
'@
'localhost
' perché il metodo di autorizzazione selezionato non supporta il salvataggio dei dati di autorizzazione. Se si desidera modificare i parametri di autorizzazione, utilizzare ALTER USER
".
Il metodo di autorizzazione unix_socket non salva le password, non esegue l'autorizzazione tramite password, ma verifica se un particolare utente soddisfa le condizioni di superutente. E non c'è modo per un utente di saltare semplicemente l'impostazione della password di root (se non è stata impostata). Per questo motivo il software non consente di procedere. È possibile risolvere il problema collegandosi a MySQL.
È inoltre necessario modificare contemporaneamente il metodo di autorizzazione e la password:
sudo mysql
Nell'ambiente SQL, è necessario eseguire il seguente comando:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Chiudere il client MySQL con il comando:
exit;
Dopo aver eseguito mysql_secure_installation
, inserire la password di root
. A questo punto è possibile terminare la configurazione senza problemi. Si noti che in seguito sarà possibile connettersi a mysql utilizzando sudo senza password, perché il metodo di autorizzazione della password è attivato. Per tornare alle impostazioni precedenti dopo l'installazione di mysql_secure
, collegarsi a MySQL.
Utilizzate la password ed eseguite:
ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
Tutto qui: l'istruzione è completa.