I tried this at root prompt but didnt help.
mysql> RESET QUERY CACHE;
IT showed
Query OK, 0 rows affected (0.00 sec)
Query cache and query history are different things.
MySql stores executed queries with their results in a query cache, so it can quickly respond when the same query requested (cache hit). Run RESET QUERY CACHE or FLUSH TABLES to clear query cache.
MySql stores commands executed from its own shell in a history file. It is located under your home directory (Unix): ~/.mysql_history
. Remove this file to clear history up to now (from shell):
rm -rf ~/.mysql_history
If you want to disable history completely, create the history file as a symlink to /dev/null
(from shell):
ln -s /dev/null $HOME/.mysql_history
Mysql runs its own shell. You can delete this history by deleting the file that the history is read from, which is stored in ~/.mysql_history
If, in fact, we are answering how to clear the "history" (not the cache), and we're talking about a 'nix platform... there is another important history file to delete potentially. I.e. /root/.mysql_history
.
When accessing MariaDB (i.e. a MySQL fork if you were not aware), it's typical to launch it as sudo
. In which which case your client input history is written to /root...
instead of your home directory.
If you want to clear all recent input on BOTH the mysql client and the bash terminal for security purposes, try executing the following:
rm -rf ~/.mysql_history
sudo rm -rf /root/.mysql_history
history -cw
clear
I've used that successfully on CentOS and Debian running MySQL or MariaDB.