不低于3种方法。
明知山有虎偏向虎山行的方案:
在命令行执行HISTCONTROL=ignorespace后,再输入带密码的命令的前面加一个空格登录,登录命令不会被记录到历史记录里。
[root@oldboy~]# HISTCONTROL=ignorespace
#<==这里是临时生效,要想永久生效,请放入/etc/bashrc。
[root@oldboy~]# mysql -uroot-p‘oldboy123‘
#<==命令的开头要多一个空格。
执行“history -d 历史命令序号” 清除指定历史记录命令
[root@oldboy~]# history|tail -4
#<==显示历史记录。
252 mysql -uroot -p‘oldboy123‘
#<==此条带密码,敏感,待删除。
253 pwd 254 history 255 history|tail -4 [root@oldboy~]# history -d 252
#<==删除序号为252的历史记录。
[root@oldboy~]# history|tail -5 252 pwd
#<==序号252对应的带密码登录的命令已经消失。
253 history 254 history|tail -4 255 history -d 252 256 history|tail -5 执行“history -c”清除所有所有记录 [root@oldboy~]# history -c [root@oldboy~]# history 1 history 执行“>~/.bash_history”清除历史记录文件
chmod 700/data/3306/mysql
#<==可以采用kill信号的关闭方式数据库,从而防止密码泄露。
chmod 700/server/scripts/bak.sh
#<==将密码写入my.cnf配置文件,使得执行备份命令不需要加密码。
[root@oldboy~]# cp /application/mysql/my.cnf /etc/ [root@oldboy~]# grep -A 2 client/etc/my.cnf
#<==配置文件开头添加如下三行,无需重启系统。
[client]
#<==客户端模块标签。
user=root
#<==用户参数及密码。
password=oldboy123
#<==密码参数及密码。
[root@oldboy~]# mysql
#<==此时登录数据库就不用输入密码了。
Welcometo the MySQL monitor. Commands endwith; or \g. YourMySQL connection id is 8 Serverversion: 5.6.34 Source distribution ...省略若干行... Type‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clearthe current input statement. mysql>
知道山上有老虎,就不去的的方法:
[root@oldboy~]# mysql-uroot -p
#<==这里标准dba命令行登陆命令,交互式输入密码可有效防止密码泄露。
Enter password:
本文出自 “李导的博客” 博客,请务必保留此出处http://lidao.blog.51cto.com/3388056/1912536
老男孩教育每日一题:2017年3月13日-如何防止Linux命令行或脚本里MySQL登录密码泄露?
原文地址:http://lidao.blog.51cto.com/3388056/1912536