我的MySQL安装在远程主机上,我通过PHP PDO与Mysql交互。我想检查我执行的SQL语句。所以我在google上搜索并使用tcpdump。这是网上的代码。
tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | perl -e '
while(<>) { chomp; next if /^[^ ]+[ ]*$/;
if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL)/i) {
if (defined $q) { print "$q\n"; }
$q=$_;
} else {
$_ =~ s/^[ \t]+//; $q.=" $_";
}
}'
但我发现它可以显示utf8字样。
这篇文章Make sure your terminal supports outputting UTF-8 注意到我应该检查我的终端是否支持输出UTF-8。
但我的终端确实支持utf8。
我也尝试上面推荐的解决方案,但它仍然不起作用。
tcpdump -lnpi lo tcp port 80 -s 16000 -w - | tr -t '[^[:print:]]' ''
tcpdump -lnpi lo tcp port 80 -s 16000 -w - | strings -e S -n 1
所以我想知道如何显示tcpdump捕获的utf8字符?