Mysql命令行汇总--help

来源:互联网 发布:易投水利造价软件 编辑:程序博客网 时间:2024/06/03 15:16

1) pager

pager真是一个很神奇的东西,它可以控制mysql的输出。默认值是stdout,直接输出。 艾,貌似讲不清楚啊,还是看几个例子吧:
mysql> SELECT mobile FROM profile WHERE mobile!='';+-------------+| mobile      |+-------------+| 13719001986 || 123214234   |+-------------+2 ROWS IN SET (0.00 sec) mysql> mysql> pager grep "137"PAGER SET TO 'grep "137"'mysql> mysql> SELECT mobile FROM profile WHERE mobile!='';| 13719001986 |2 ROWS IN SET (0.00 sec) mysql> pagerDEFAULT pager wasn't set, using stdout
相当于在输出之后附加了 | grep “137″ ,是不是很震憾。 
不止是grep, 所有linux上面的命令都可以的,自由发挥吧
 比如select很多行数据,就可以设置pager more,一页一页地看。 再比如要比较二次select的结果是否相同,可以设置pager md5sum,实在是太赞了。 再比如,只想看select语句运行需要多长时间,而不想看到select出来的结果集,可以使用
pager cat > /dev/null
再比如,看一下processlist里面Sleep的线程有多少,可以使用
pager grep Sleep | wc -l
个人理解:可将pager 当作linux下的"|" 即当作管道符使用!!

2) edit

肯定有人会有这样的想法:在mysql命令行里面编辑一个复杂点的sql语句实在是太费神了,光标只能左右移动,要是有个vi就好多啦。 其实真的有…. mysql> edit 就这么简单,谁用谁知道。

简单记录一下此命令用法
该命令会打开一个编辑窗口来编辑你敲入的上一条命令
默认是一个vi 窗口,可以使用各种vi命令来编辑sql语句。 
例如: 
mysql>show tables; ... 
mysql>edit        //这里敲回车,注意这里没有分号 (在打开的vi中编辑,然后wq退出) 
 >;                      //退出后在敲上分号。 敲完分号按回车后立即执行这条编辑后的语句


3) tee

如果想记录下来您所有的操作及输出,除了屏幕录象软件之外,还有这么一个神奇的东西tee。
mysql> tee /tmp/h.logLogging TO file '/tmp/h.log'mysql> mysql> mysql> SHOW engine innodb STATUS;.........mysql> exit
所有的一切都被记录在 /tmp/h.log文件中了。

4) prompt

快要去吃午饭了, 这时如果你又想看一条UPDATE语句究竟会执行多久,怎么办? 等下去就要饿死啦。 修改一下mysql的prompt提示符,轻松解决这个问题:
mysql> prompt \r:\m:\s\P>\_PROMPT SET TO '\r:\m:\s\P>\_'11:30:10am> 11:30:11am> 11:30:11am> 11:30:12am> 11:30:12am> 11:30:12am> 11:30:12am>
输入UPDATE语句,回车走人。 吃完饭回来就可以看到执行结束的时间了。
更多prompt用法请参阅
http://blog.itechol.com/space.php?uid=33&do=blog&id=6831

5) ctrl+z

作为一个dba,每天都要在命令行中登陆mysql,运行完sql语句,随手就logout了,(快捷键是ctrl+d), 过一段时间又要login,又随手logout…… 重复重复再重复,不仅浪费时间,而且输入mysql root的复杂密码也会烦死个人。 这个logout的坏习惯,一定要改掉。。。,哥已经改掉了。
mysql> mysql> mysql> SELECT now();+---------------------+| now()               |+---------------------+| 2012-12-25 15:33:16 |+---------------------+1 ROW IN SET (0.00 sec) mysql> 
不要按ctrl+d了, 换成Ctrl+z  暂停任务。[1]+  Stopped                 /home/mysql/bin/mysql -uroot -p
[MODIFY@www 8p]$ [MODIFY@www 8p]$ [MODIFY@www 8p]
需要用到mysql的时候,输入fg回车:[MODIFY@www 8p]$ fg/home/mysql/bin/mysql -uroot -pmysql> mysql>
是不是很爽。。。

6) html输出

-H
[root@www ~]# /home/mysql/bin/mysql -uroot -p -H -e "select host from mysql.user";Enter password: <TABLE BORDER=1><TR><TH>host</TH></TR><TR><TD>localhost</TD></TR><TR><TD>localhost</TD></TR><TR><TD>localhost</TD></TR><TR><TD>localhost</TD></TR><TR><TD>localhost</TD></TR><TR><TD>localhost</TD></TR></TABLE>[root@www ~]#

7) 最简化输出

如果只想要结果,不要那些边框,字段名称之类的东西,可以使用
 –skip-line-numbers                 –skip-column-names
[root@www ~]# /home/mysql/bin/mysql  -uroot -p -e "select count(*) from shipincon.share where add_time >= current_date()";                            +----------+| COUNT(*) |+----------+|      850 |+----------+ [root@www ~]# /home/mysql/bin/mysql --silent   --skip-line-numbers  --skip-column-names -uroot -p -e "select count(*) from shipincon.share where add_time >= current_date()";850

8) help

在不方便上网查找mysql文档的情况下,help还是很靠谱的。
mysql> help string functions;You asked FOR help about help category: "String Functions"FOR more information, TYPE 'help <item>', WHERE <item> IS one OF the followingtopics:   ASCII   BIN   BINARY OPERATOR   BIT_LENGTH   CAST   CHAR FUNCTION   CHARACTER_LENGTH   CHAR_LENGTH   CONCAT   CONCAT_WS   CONVERT   ELT   EXPORT_SET   EXTRACTVALUE   FIELD   FIND_IN_SET   FORMAT   HEX........ mysql> help instr;Name: 'INSTR'Description:Syntax:INSTR(str,substr) RETURNS the POSITION OF the FIRST occurrence OF SUBSTRING substr INstring str. This IS the same AS the two-argument form OF LOCATE(),EXCEPT that the ORDER OF the arguments IS reversed. URL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html Examples:mysql> SELECT INSTR('foobarbar', 'bar');        -> 4mysql> SELECT INSTR('xbar', 'foobar');        -> 0
1 0
原创粉丝点击