Deshabilitar el Historial de MySQL

¿Como deshabilito el historial de MySQL? No quiero que mysql recuerde los comando previos que he usado desde la linea de comando mysql>. Para algunos esto es importante ya que algunos comando que ejecutan contienen contraseña (password). Se puede ver la contraseña claramente guardada en el archivo ~/.mysql_history, y eso es algo que muchos no desean que suceda.

La característica Bash history almacena los comandos Linux escritos en la linea de comandos en el archivo ~/.bash_history. Igual que el shell de bash, mysql almacena los comando usados en la linea de comando en el archivo ~/.mysql_history.

En este articulo vamos a ver como dehabilitar el historial de mysql.

1) Ejecutar algunos comandos sql desde la linea de comandos mysql>

Conectar a mysql desde la linea de comando de Linux y ejecutar los siguientes comandos:

$ mysql -u root -pyour-password

mysql> show databases;
mysql> use information_schema;
mysql> show tables;
mysql> select table_name, table_rows from tables;

Nota: Ahora, si presionas la flecha arriba, podrás ver todos los comandos que has usado previamente en la linea de comandos.

2) El archivo ~/.mysql_history almacena el historial de mysql

Sal de la linea de comandos de mysql y revisa el archivo ~/.mysql_history el cual contiene todos los comandos sql que has ejecutado desde la linea de comandos de mysql

$ cat ~/.mysql_history
select * from versions;
show databases;
use information_schema;
show tables;
select table_name, table_rows from tables;

3) Deshabilita el historial de mysql usando la variable de ambiente MYSQL_HISTFILE

Primero remueve el archivo ~/.mysql_history

$ rm ~/.mysql_history

Luego setea la variable de ambiente MYSQL_HISTFILE a /dev/null

$ export MYSQL_HISTFILE=/dev/null

$ set | grep MYSQ
MYSQL_HISTFILE=/dev/null

Ahora, entra a mysql y ejecuta algunos comandos. Notaras que el archivo ~/.mysql_history no se esta creando ya mas.

$ mysql -u root -pyour-password
mysql> show databases;
mysql> use information_schema;
mysql> show tables;
mysql> select table_name, table_rows from tables;

$ cat ~/.mysql_history
cat: /home/usuario/.mysql_history: No such file or directory

4) Deshabilita el historial de mysql apuntando .mysql_history a /dev/null

Primero remueve el archivo ~/.mysql_history

$ rm ~/.mysql_history

Luego crea un enlace simbolico para que ~/.mysql_history apunte a /dev/null.

$ ln -s /dev/null ~/.mysql_history

$ ls -l .mysql_history
lrwxrwxrwx 1 usuario admin 9 Dec 26 19:18 /home/usuario/.mysql_history ->
/dev/null

Ahora entra a mysql y ejecuta algunos comandos. Notaras que el archivo ~/.mysql_history esta vacío y no ha guardado los comandos que has escrito.

$ mysql -u root -pyour-password
mysql> show databases;
mysql> use information_schema;
mysql> show tables;
mysql> select table_name, table_rows from tables;

$ cat ~/.mysql_history

Comentarios

Entradas populares de este blog

Habilitar ñ o tildes en un teclado de laptop usando Ubuntu

Todo sobre el espacio SWAP en Linux

Crear, Compilar y Ejecutar un Programa en Haskell