Soluzione 1:
Il modo più semplice per farlo è utilizzare una sezione client del file ~/.my.cnf e aggiungere lì le credenziali.
[client]
user=root
password=somepassword
...
è una buona idea rendere quel file leggibile anche solo da root.
Soluzione 2:
Per mysql 5.7+, se imposti una password vuota per la configurazione iniziale, mysql utilizzerà automaticamente auth_socket
come strategia. Un tentativo di aggiornare la password senza modificare la strategia non avrà alcun risultato. Puoi sempre accedere senza utilizzare la password se il tuo utente è root
.
Soluzione Eseguire il seguente comando per modificare la strategia di autenticazione e impostare la password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''
riferimento:https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/
Soluzione 3:
A partire da MySQL 5.6.6, puoi utilizzare mysql_config_editor per creare un file crittografato che ti farà accedere automaticamente:
mysql_config_editor set --login-path=client --host=localhost --user=root --password
Quindi inserisci la password quando richiesto.
Nota:se la tua password contiene '#' e possibilmente altri caratteri, usa le virgolette singole quando inserisci la password.