Solución 1:
La forma más fácil de hacer esto es usar una sección de cliente del archivo ~/.my.cnf y agregar las credenciales allí.
[client]
user=root
password=somepassword
...
es una buena idea hacer que ese archivo solo sea legible por root también.
Solución 2:
Para mysql 5.7+, si establece una contraseña vacía para la configuración inicial, mysql usará automáticamente auth_socket
como estrategia. Un intento de actualizar la contraseña sin cambiar la estrategia no tendrá ningún resultado. Siempre puede iniciar sesión sin usar contraseña si su usuario es root
.
Solución Ejecute el siguiente comando para cambiar la estrategia de autenticación y establecer la contraseña
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''
referencia:https://www.percona.com/blog/2016/03/16/cambiar-contraseña-de-usuario-en-mysql-5-7-with-plugin-auth_socket/
Solución 3:
A partir de MySQL 5.6.6, puede usar mysql_config_editor para crear un archivo encriptado que lo iniciará automáticamente:
mysql_config_editor set --login-path=client --host=localhost --user=root --password
Luego ingrese la contraseña cuando se le solicite.
Nota:si su contraseña tiene '#' y posiblemente otros caracteres, use comillas simples cuando ingrese la contraseña.