1) pager pager真是一个很神奇的东西,它可以控制mysql的输出。默认值是stdout,直接输出。艾,貌似讲不清楚啊,还是看几个例子吧: mysql SELECT mobile FROM profile WHERE mobile!='';+-------------+| mobile |+-------------+| 13719001986 || 12321423
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> pager DEFAULT pager wasn't set, using stdout再比如,看一下processlist里面Sleep的线程有多少,可以使用
pager cat > /dev/null
2) edit
肯定有人会有这样的想法:在mysql命令行里面编辑一个复杂点的sql语句实在是太费神了,光标只能左右移动,要是有个vi就好多啦。 其实真的有…. mysql> edit 就这么简单,谁用谁知道。3) tee
如果想记录下来您所有的操作及输出,除了屏幕录象软件之外,还有这么一个神奇的东西tee。
| @@######@@ |
4) prompt
快要去吃午饭了, 这时如果你又想看一条UPDATE语句究竟会执行多久,怎么办? 等下去就要饿死啦。 修改一下mysql的prompt提示符,轻松解决这个问题:
| @@######@@ |
5) ctrl+z
作为一个dba,每天都要在命令行中登陆mysql,运行完sql语句,随手就logout了,(快捷键是ctrl+d), 过一段时间又要login,又随手logout…… 重复重复再重复,不仅浪费时间,而且输入mysql root的复杂密码也会烦死个人。 这个logout的坏习惯,
| @@######@@ |
6) html输出
-H
| @@######@@ |
7) 最简化输出
如果只想要结果,不要那些边框,字段名称之类的东西,可以使用 –skip-line-numbers –skip-column-names
| @@######@@ |
8) help
在不方便上网查找mysql文档的情况下,help还是很靠谱的。
| @@######@@ |
原文地址:Mysql命令行技巧汇总, 感谢原作者分享。
pager grep Sleep | wc -l
mysql> tee /tmp/h.log Logging TO file '/tmp/h.log' mysql> mysql> mysql> SHOW engine innodb STATUS; ......... mysql> exit
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>
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 -p mysql> mysql>
[root@www ~]# /home/mysql/bin/mysql -uroot -p -H -e "select host from mysql.user"; Enter password: hostlocalhostlocalhostlocalhostlocalhostlocalhostlocalhost[root@www ~]#
[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
mysql> help string functions;
You asked FOR help about help category: "String Functions"
FOR more information, TYPE 'help ', WHERE IS one OF the following
topics:
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 IN
string 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');
-> 4
mysql> SELECT INSTR('xbar', 'foobar');
-> 0








