Q. How do I clear the mysql command line history stored in ~/.mysql_history file?
A. mysql is a simple SQL shell. It supports interactive and non-interactive use.
On Unix and Linux, the mysql client writes a record of executed statements to a history file. By default, the history file is named .mysql_history and is created in your home directory. To specify a different file, set the value of the MYSQL_HISTFILE environment variable.
Task: CLEAR MYSQL COMMAND LINE HISTORY
Remove ~/.mysql_history by typing following command:
$ > ~/.mysql_history
If you do not want to maintain a history file, first remove .mysql_history if it exists, and then use either of the following techniques:
Set the MYSQL_HISTFILE variable to /dev/null. To cause this setting to take effect each time you log in, put the setting in one of your shell’s startup files.
Create ~/.mysql_history as a symbolic link to /dev/null. You need run following command only once:
$ rm $HOME/.mysql_history
$ ln -s /dev/null $HOME/.mysql_history
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- My 10 UNIX Command Line Mistakes
- Linux: 20 Iptables Examples For New SysAdmins

- 25 PHP Security Best Practices For Sys Admins
- The Novice Guide To Buying A Linux Laptop
- 10 Greatest Open Source Software Of 2009
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
Facebook it - Tweet it - Print it -


{ 3 comments… read them below or add one }
Setting MYSQL_HISTFILE to /dev/null is not such a good idea as mysql tries to creates the file on startup. Thus it replaces /dev/null by a regular file accessible only by root – not something you want to do on your server system!
In case you already tried and hosed your /dev/null, the following command will restore it:
mknod -m 666 /dev/null c 1 3charon
charon,
This a sym link, so it will not remove /dev/null and you should never use root account to connect to mysql as root. You can do that from normal user too..
Appreciate your comment.
nixcraft,
if you set the environment variable MYSQL_HISTFILE to /dev/null, there is no symlink but the file is accessed directly. If you create the symlink, you don’t run into the troubles I described. Of course you’re right, you should never ever work as root, but… you know…
charon