Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL历史记录显示了大量\040_Mysql_Bash_Shell_History_Perl - Fatal编程技术网

MySQL历史记录显示了大量\040

MySQL历史记录显示了大量\040,mysql,bash,shell,history,perl,Mysql,Bash,Shell,History,Perl,当我试图了解mysql的历史时,我看到了这一点 cat~/.mysql_历史记录 我明白了: └── cat ~/.mysql_history _HiStOrY_V2_ exit GRANT\040ALL\040PRIVILEGES\040ON\040*\040.\040*\040TO\040'jada'@'localhost'; FLUSH\040PRIVILEGES; select\040User,Host\040from\040mysql.user; exit select\040Use

当我试图了解mysql的历史时,我看到了这一点

cat~/.mysql_历史记录

我明白了:

└──  cat ~/.mysql_history
_HiStOrY_V2_
exit
GRANT\040ALL\040PRIVILEGES\040ON\040*\040.\040*\040TO\040'jada'@'localhost';
FLUSH\040PRIVILEGES;
select\040User,Host\040from\040mysql.user;
exit
select\040User,Host\040from\040mysql.user;
GRANT\040ALL\040PRIVILEGES\040ON\040*\040.\040*\040TO\040'jada'@'localhost';
FLUSH\040PRIVILEGES;
select\040User,Host\040from\040mysql.user;
exit
drop\040database\app;\040
show\040databases;\040
create\040database\app;\040
exit
show\040databases;\040
use\app;\040
select\040*\040from\040users;\040
exit
use\app;\040
select\040*\040from\040users;\040
exit
select\040User,Host\040from\040mysql.user;
GRANT\040ALL\040PRIVILEGES\040ON\040*\040.\040*\040TO\040'jada'@'localhost';
FLUSH\040PRIVILEGES;
select\040User,Host\040from\040mysql.user;
exit
select\040User,Host\040from\040mysql.user;
exit
select\040*\040from\040users;
show\040databases;\040
use\app\040;\040
select\040*\040from\040users;
DELETE\040FROM\040table_name\040WHERE\040condition;
DELETE\040FROM\040users\040WHERE\040id\040=\0402;
select\040*\040from\040users;
history
show\040history;
exit
我看到一堆
\040

我如何在bash中看到像常规历史一样干净的历史


我已经在5台虚拟机上试过了。同样的结果。一直以来。

我记得mysql客户端上有一个老bug
尝试更新它

我记得mysql客户端上有一个老错误
sed 's/\\040/ /g' < .mysql_history
尝试更新它

sed的/\\040//g'<.mysql\u历史记录
sed 's/\\040/ /g' < .mysql_history
这只会固定空间;我不知道问题的严重程度

\0xx
是一个八进制转义序列
40
空间的八进制

sed的/\\040//g'<.mysql\u历史
这只会固定空间;我不知道问题的严重程度

\0xx
是一个八进制转义序列
40
空间的八进制

这是一个常见的作业: 或者更好,使用: 当然,您可以在整个文件上循环:

while read -r line ;do
    printf '%b\n' "$line"
done <.mysql_history
读取-r行时
;做
printf'%b\n'$行
完成这项工作是以下人员的常见工作:
或者更好,使用:
当然,您可以在整个文件上循环:

while read -r line ;do
    printf '%b\n' "$line"
done <.mysql_history
读取-r行时
;做
printf'%b\n'$行

完成您可以使用sed命令简单地将\040替换为空格字符,并为其定义别名,这样您就可以简单地调用alias而不是重复完整的命令:alias mysqlh for mysql history

$ alias mysqlh="cat ~/.mysql_history | sed 's/\\\040/ /g'"
$ mysqlh
_HiStOrY_V2_
exit
GRANT ALL PRIVILEGES ON * . * TO 'jada'@'localhost';
FLUSH PRIVILEGES;
select User,Host from mysql.user;
exit
select User,Host from mysql.user;
GRANT ALL PRIVILEGES ON * . * TO 'jada'@'localhost';
FLUSH PRIVILEGES;
select User,Host from mysql.user;
exit
drop database\app;
show databases;
create database\app;
exit
show databases;
use\app;
select * from users;
exit
use\app;
select * from users;
exit
select User,Host from mysql.user;
GRANT ALL PRIVILEGES ON * . * TO 'jada'@'localhost';
FLUSH PRIVILEGES;
select User,Host from mysql.user;
exit
select User,Host from mysql.user;
exit
select * from users;
show databases;
use\app ;
select * from users;
DELETE FROM table_name WHERE condition;
DELETE FROM users WHERE id = 2;
select * from users;
history
show history;
exit

您可以使用sed命令简单地将\040替换为空格字符,并为其定义别名,这样您就可以简单地调用alias而不是重复完整的命令:alias mysqlh for mysql history

$ alias mysqlh="cat ~/.mysql_history | sed 's/\\\040/ /g'"
$ mysqlh
_HiStOrY_V2_
exit
GRANT ALL PRIVILEGES ON * . * TO 'jada'@'localhost';
FLUSH PRIVILEGES;
select User,Host from mysql.user;
exit
select User,Host from mysql.user;
GRANT ALL PRIVILEGES ON * . * TO 'jada'@'localhost';
FLUSH PRIVILEGES;
select User,Host from mysql.user;
exit
drop database\app;
show databases;
create database\app;
exit
show databases;
use\app;
select * from users;
exit
use\app;
select * from users;
exit
select User,Host from mysql.user;
GRANT ALL PRIVILEGES ON * . * TO 'jada'@'localhost';
FLUSH PRIVILEGES;
select User,Host from mysql.user;
exit
select User,Host from mysql.user;
exit
select * from users;
show databases;
use\app ;
select * from users;
DELETE FROM table_name WHERE condition;
DELETE FROM users WHERE id = 2;
select * from users;
history
show history;
exit

\040
是空格字符。我没有看到类似的内容。
type cat
显示了什么?您运行的是哪个版本的
mysql
?@Barmar我在
服务器版本:8.0.20-0ubuntu0.19.10.1
这是客户端问题,不是服务器问题。但可能他们更改了历史文件的格式(我仍在使用5.x)。
\040
是空格字符。我没有看到类似的内容。
type cat
显示了什么?您运行的是哪个版本的
mysql
?@Barmar我在
服务器版本:8.0.20-0ubuntu0.19.10.1
这是客户端问题,不是服务器问题。但也许他们改变了历史文件的格式(我仍然使用5.x)。
$ alias mysqlh="cat ~/.mysql_history | sed 's/\\\040/ /g'"
$ mysqlh
_HiStOrY_V2_
exit
GRANT ALL PRIVILEGES ON * . * TO 'jada'@'localhost';
FLUSH PRIVILEGES;
select User,Host from mysql.user;
exit
select User,Host from mysql.user;
GRANT ALL PRIVILEGES ON * . * TO 'jada'@'localhost';
FLUSH PRIVILEGES;
select User,Host from mysql.user;
exit
drop database\app;
show databases;
create database\app;
exit
show databases;
use\app;
select * from users;
exit
use\app;
select * from users;
exit
select User,Host from mysql.user;
GRANT ALL PRIVILEGES ON * . * TO 'jada'@'localhost';
FLUSH PRIVILEGES;
select User,Host from mysql.user;
exit
select User,Host from mysql.user;
exit
select * from users;
show databases;
use\app ;
select * from users;
DELETE FROM table_name WHERE condition;
DELETE FROM users WHERE id = 2;
select * from users;
history
show history;
exit