Linux中的MySQL会记录我们最近执行过的所有SQL命令,下面就给大家整理了Linux中MySQL历史执行命令的相关知识,希望对大家有所帮助!
linux中mysql历史执行命令详解
MySQL 会把我们最近执行过的 SQL 命令和脚本展示给我们;就像 Linux 把它们保存在 ~/. 中一样,你使用 MySQL 连接 MySQL 的所有操作也会被记录在 ~/. 文件中,这会造成很大的安全隐患。比如添加 MySQL 用户的 SQL 也会被明文记录在这个文件中。
1. 检查系统的 ~/. 文件
(在我的测试环境中一般都是使用Linux的MySQL用户来管理,所以在/home/mysql目录下会有这个文件)
-bash-3.2$ ls -al | grep
-rw------- 1 mysql mysql 5006 4月 10 日 18:53 。
2.测试MySQL用户管理的SQL会被记录
2.1 使用linux用户mysql通过mysql命令行工具登录MySQL,添加用户“@”,并设置密码
mysql> 授予 rep.* 至 @'123';
查询成功,0 行(0.00 秒)
mysql>
2.2断开mysql连接,查看/home/mysql/.文件,可以看到添加mysql用户的操作已经被记录下来,包括明文密码123。
-bash-3.2$ tail -1 ~/.
授予@代表*'123';
注意:这个 . 不仅仅存在于 MySQL 的位置。任何时候你可以远程连接到 MySQL,这个隐藏文件就会在当前用户的 ~ 目录中创建。
3.如何去除使用痕迹。
2.1 彻底清除 ~/.
2.1.1 删除当前文件
-bash-3.2$ rm ~/.
2.1.2 创建其软链接(原因后面会讲到)
-bash-3.2$ ln -s /dev/null ~/.
检查软链接是否创建成功。
-bash-3.2$ ls -al | grep
1 mysql mysql 9 月 10 日 20:30 .-> /dev/null
测试是否起作用:连接到mysql,执行操作,断开连接,检查操作是否还被记录下来。
mysql>显示;
+--------------------+
| |
+--------------------+
| |
| |
-------------------------
mysql>退出
再见
-bash-3.2$ cat ~/.
可以看出上面的show;操作命令是没有被记录的。同时,当你断开ssh,重新连接mysql时,按“up”键也没有任何历史操作记录提示,说明是有效的。
要使其再次生效,只需删除 ~/。下次连接和注销时将重新创建该文件。
2.2 仅清除敏感信息;如果你不想完全禁用该功能,而只是想在每次执行一些敏感操作后清除此文件,这样就足够了。
-bash-3.2$ cat /dev/null > ~/.
例如修改了MySQL用户信息,退出MySQL,再执行上述操作,即可清除所有操作痕迹。
3.~/.文件的生成原理
3.1 因为mysql工具本身带有shell,所以每次退出mysql连接时,都会在~/.文件中记录本次操作的信息。
如果此文件不存在,则会先创建,然后记录(就像上面删除它之后,或者只是安装 MySQL 一样)
3.2 这个文件的名字其实是根据Linux的环境变量来设置的,默认值是~/,我们来测试一下其他值。
3.2.1 在Linux用户的~/.=/home/mysql/中添加一行。
目录根据你的Linux用户来设置,我的测试用户是mysql。
-bash-3.2$ vi ~/.
# 用户和
PATH=$PATH:$HOME/bin
PATH=$PATH:/usr/sbin
=/home/mysql/。
3.2.2 退出Linux连接,重新登录Linux;使用MySQL连接数据库,操作,退出,检查~/.文件是否创建,检查刚才的操作是否记录下来。
mysql>显示;
+--------------------+
| |
+--------------------+
| |
----------------------
//退出mysql
mysql>退出
再见
// 检查隐藏文件是否已创建
-bash-3.2$ cd ~; ls -tal | grep
-rw------- 1 mysql mysql 16 年 4 月 10 日 20:55。
// 检查“show”命令是否正确记录在文件中
-bash-3.2$ tail -1 ~/.
展示 ;
从上面可以看出这个文件的文件名从何而来。
参考:linux下mysql查看历史命令
方法 1
如果你想查看MySQL的历史记录,你不能通过语句来实现。
只能通过记录每条语句来输入LOG
配置 my.ini 或 f
例如名称为:.log
[]
对数=.对数
然后重新启动 MySQL 服务器。
此后,您的客户端执行的所有 SQL 语句都将保存在日志文件中。
方法 2
MySQL有这样的机制,就是在用户的主目录下会生成一个.文件,这个文件会记录用户登录MySQL之后,在MySQL中输入的每一条命令。
cat ~/.可以看到之前的命令历史记录。
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。