正常情况下,一般数据库密码可以写在用户主目录的.my.cnf 然后设置chmod 600,一般来说是比较安全的。
但是如果不想给人知道用户名和实际的密码,但是又想给人用,可以使用mysql自己带的config edit。
1 |
mysql_config_editor set --user=root --password |
这个时候,用户主目录下会出现一个加密了以后的.mylogin.cnf,权限600
直接查看会发现密码是加密的,调用:
1 |
mysql_config_editor print --all |
可以看见摘要
直接调用mysql 就可以免密码登录mysql_config_editor设置的默认服务器
如果需要设置多个服务器,可以使用--login-path
参数
1 |
mysql_config_editor set --login-path=dev-slave --user=root --password --host=ip-of-server --port=3308 |
链接的时候,使用
1 |
mysql --login-path=dev-mysql |
这种方法说不上有多安全,主要是加密以后,肉眼看不见了而已。
记得,.my.cnf 和.mylogin.cnf 一定要chmod 600
文字参考了:
https://www.percona.com/blog/2014/11/25/more-secure-local-passwords-in-mysql-5-6-and-up/
http://mysqlblog.fivefarmers.com/2012/08/16/understanding-mysql_config_editors-security-aspects/