The goal here was to be able to log in to the MySQL command prompt be simply typing
mysql
rather than:
mysql -u root -p
This is particularly useful for automation of routine backups etc.
mysql_config_editor
The command mysql_config_editor has several options (e.g. add, remove, print) for managing encrypted passwords. To create a new login
mysql_config_editor set --user=root --password
It is also possible to use the option –login-path=myinstancename to configure multiple sign-ins but omitting that option (as above) sets the default.
After running the command above you will be prompted for the user password and after supplying it the encrypted details are stored in ~/.mylogin.cnf
To print details of your created logins use:
mysql_config_editor print
To remove a stored login use:
mysql_config_editor remove
.mylogin.cnf
mysqldump
After creating the .mylogin.cnf file typing ‘mysql’ or ‘mysqldump’ at the command line will automatically use the .mylogin.cnf file and will not prompt for a password. So no need to store the MySQL password in plain text.
What happens if you change the root password?
If you change the root password e.g.
mysqladmin -u root -p password
You would need to recreate the .mylogin.cnf i.e.
mysql_config_editor remove
mysql_config_editor set --user=root --password