4

I use linux OS with mysql database.

mysql CLI doesn't log some commands in ~/.mysql_history .
For example can not log create user.

How can force cli to store all commands in mysql_history ?
How can fix this problem ?

Dave M
  • 4,514
  • 22
  • 31
  • 30
mah454
  • 157
  • 4

2 Answers2

15

That behaviour is by design, which as far as I know you can not override.
By default all interactive statements are logged, including the CREATE USER statement, except when they contain password information.

Although you can add extra conditions that will prevent logging certain additional statements (set either the --histignore option or the MYSQL_HISTIGNORE environment variable) or completely stop logging with for instance the --batch switch, logging passwords is as far as I know not possible.

https://dev.mysql.com/doc/refman/5.7/en/mysql-logging.html

mysql ignores for logging purposes statements that match any pattern in the “ignore” list. By default, the pattern list is "*IDENTIFIED*:*PASSWORD*", to ignore statements that refer to passwords.

HBruijn
  • 77,029
  • 24
  • 135
  • 201
1

Try to:

  • set MYSQL_HISTFILE environment variable explicitily

  • touch .mysql_history

  • chmod 600 .mysql_history

History in not written immediately, but when you exit the client.

Nicola Ben
  • 123
  • 4