正常情况下,一般MySQL免密码登录数据库可以通过在~/.my.cnf写入密码实现,然后设置chmod 600,一般来说是比较安全的。 但是如果不想给人知道用户名和实际的密码,但是又想给人用,可以使用MySQL自己带的mysql_config_editor.

执行下面命令,输入MySQL用户root对应的密码,随后产生一个文件~/.mylogin.cnf:

mysql_config_editor set --user=root --password
# 直接查看会发现密码是加密的
# 查看摘要
mysql_config_editor print --all

现在直接调用 mysql 就可以免密码登录mysql_config_editor设置的默认服务器了. 如果需要设置多个服务器,可以使用–login-path参数:

mysql_config_editor set --login-path=dev-slave --user=root --password --host=ip-of-server --port=3308
# 使用
mysql --login-path=dev-mysql

这种方法说不上有多安全,主要是加密以后,肉眼看不见了而已。