MySQL安全优化之利用别名防止误操作
背景:
新手运维误操作,删掉我整个test表(test,无备份)
操作命令:
mysql> update test set name='tom';
产生的结果:
test表的所有name列都变成了"tom"
####################################
痛定思痛,百度后通过帮助命令发现
[root@linuxidc ~]# mysql --help|grep dummy
-U, --i-am-a-dummy Synonym for option --safe-updates, -U.
i-am-a-dummy FALSE
于是乎,脑洞大开
[root@linuxidc ~]# alias mysql='mysql -U'
[root@linuxidc ~]# alias
alias c='clear'
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias mysql='mysql -U'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@linuxidc ~]# echo "alias mysql='mysql -U'" >>/etc/profile
[root@linuxidc ~]# source /etc/profile
问题解决。
注意:-U是大写的,以后再登陆的时候可以指定这个参数
好处:
指定登陆-U 后,在mysql里,执行update和delete操作,如果没有指定where或limit,则程序拒绝执行。