This post will tell you how to get MySQL passwords in plain text using the .mylogin.cnf file.
Since MySQL 5.6.6, it became possible to store MySQL credentials in an encrypted login path file named .mylogin.cnf, using the mysql_config_editor tool. This is better than in plain text anyway.
What if I need to read this password in plain text?
Perhaps because I didn’t save it? It might be that I don’t need it for long (as I can reset it), but it’s important that I get it.
Unfortunately (or intentionally),
mysql_config_editor
doesn’t allow it.
[root@db01 ~]# cat /root/.mylogin.cnf ????uUd?????N??3k???);???0 ?'?(??W.???X?<'?C???ha?$ ?? r(?q`?+[root@db01 ~]# [root@db01 ~]# [root@db01 ~]# mysql_config_editor print --all [client] user = root password = ***** [root@db01 ~]#
I wrote this blog post because I just faced this issue. I needed to get the password out of there. Surprisingly, it is simpler than I thought. While looking for an answer I found that some people created scripts to decrypt it (as it uses the AES-128 ECB algorithm), sometimes getting the MySQL code source or simply using a scripting language.
However, it turns to be very simple.
mysql_config_editor
does not provide this option, but
my_print_defaults
does!
[root@db01 ~]# my_print_defaults -s client --user=root --password=Xb_aOh1-R33_,_wPql68 [root@db01 ~]#
my_print_defaults
is a standard tool in the MySQL server package. Keep your passwords safe!