从mysql5.6开始,mysql推出了加密工具mysql_config_editor。在此之前我们通过将账号和密码明文放入my.cnf,从而使用mysql客户端登录时,无需指定账号密码就可以登录数据库。而有了mysql_config_editor工具之后,我们将加密后的账号密码放入二进制文件。在登录时,客户端通过解密该文件来登录数据库。由于加密解密都在内存中进行,所以无法明文的显示文件内容。只要我们将文件权限保存好,就可以防止不怀好意的人解密我们的数据库密码了.
mysql_config_editor的使用过程如下:
mysql_config_editor set --login-path=client --host=localhost --user=localuser --password
这样我们就配置了一个为本地的数据源信息:
login-path:指定通过mysql客户端登录时的标识
host:我们要连接的数据库
user:通过本地连接数据库时,使用的账号
password:指定通过本地连接时,使用的数据库密码
查看生成文件的 .mylogin.cnf内容:
# mysql_config_editor print --all
[client]
user = root
password = *****
host = localhost
socket = /data/mysql/mysqld.sock
设置后MySQL客户端登陆方式:
mysql --login-path=client