MySQL客户端输出格式化神奇现象,以前没注意到,在此分享一下:
$ mysql -uroot -e “show global status like ‘Uptime’”
+—————+———+
| Variable_name | Value |
+—————+———+
| Uptime | 2174838 |
+—————+———+$ mysql -uroot -e “show global status like ‘Uptime’” > /tmp/test
[mysql@dev81 ~]$ cat /tmp/test
Variable_name Value
Uptime 2174855发现奇怪的地方了吗?格式化的那些符号都不见了!同样的命令,重定向到文件之后,输出变了!
+—————+———+
| Variable_name | Value |
+—————+———+
| Uptime | 2174838 |
+—————+———+
变成了
Variable_name Value
Uptime 2174855想了很长时间,没想明白。问了下曲山,他二话不说开始用strace,马上就发现了奥妙所在。
$ strace mysql -uroot -e “show global status like ‘Uptime’”
……
……
write(1, “+—————+———+
”, 28+—————+———+
) = 28
write(1, “| Variable_name | Value |
”, 28| Variable_name | Value |
) = 28
write(1, “+—————+———+
”, 28+—————+———+
) = 28
write(1, “| Uptime | 2175430 |
”, 29| Uptime | 2175430 |
) = 29
write(1, “+—————+———+
”, 28+—————+———+
) = 28
poll([{fd=3, events=POLLIN|POLLPRI}], 1, 0) = 0
write(3, “1 1″, 5) = 5
shutdown(3, 2 /* send and receive */) = 0
close(3) = 0
exit_group(0) = ?
Process 24577 detached$ strace mysql -uroot -e “show global status like ‘Uptime’” > /tmp/test
……
……
write(1, “Variable_name Value
Uptime 21755″…, 35) = 35
exit_group(0) = ?
Process 24581 detached针对不同的输出渠道,MySQL的客户端似乎有方法可以捕捉到并采取不同的格式化输出策略。不过MySQL为什么要这样做的原因还是不知道,估计只有天知道了。Linux中MySQL 无法正常启动的解决Linux下C++访问mysql出现函数undefined reference相关资讯 mysql
- 数据库服务器 MySQL (08/15/2013 06:50:23)
- MySQL 5.6 GA 及逃亡潮 (02/08/2013 14:36:35)
- MySQL 5.5.22、5.1.62、5.0.96全线 (03/22/2012 19:03:49)
| - MySQL Administrator连接VMWare下 (05/24/2013 09:20:58)
- MySQL 5.1.68 发布 (02/05/2013 08:37:47)
- CentOS 5.2+MySQL+Heartbeat双机互 (01/29/2012 11:16:55)
|
本文评论 查看全部评论 (0)