关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

安全实现Shell下MySQL免输入密码登录 利用.my.cnf

发布时间:2019-10-14 14:38:59

MySQL,相信大家都不陌生,平时也可能会在Linux服务器上使用mysql,mysqldump等登录到MySQL服务器进行操作。

如果直接执行

mysql/mysqldump -u root -p

则会提示输入该用户的密码。


想一想,如果执行该命令的是cron等非交互式的程序,那到这一步就无法继续。

有人会在-p后接上密码,这是非常不安全的一种做法,万一有用户这时执行ps aux,你的密码就暴露了……

其实,MySQL官方文档有说明,可以在~/.my.cnf处指定用户的密码。

.my.cnf的格式如下:

[client]

password="MySQL密码"

user=MySQL用户名


上面的user一行可以省略,不指定user,则自动以当前Shell登录的用户身份登入mysql。

把上述代码保存到~/.my.cnf,再次输入mysql(或mysql -u 用户名),mysql-client就会自动读取当前用户的家目录下.my.cnf文件的信息,可以无密码自动登入MySQL。

cron等非交互式的程序执行mysql,可能不会自动读取~/.my.cnf,或者.my.cnf保存在其他路径或保存为其他文件名时,就需要使用–defaults-file参数手动指定该配置文件的路径了:

mysql --defaults-file=/folder1/folder2/filename -u 用户名




最后说一句:一定要保证.my.cnf别的用户/组不能读取(chmod 400)


/template/Home/Zkeys/PC/Static