最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Mysql命令行技巧汇总

来源:动视网 责编:小采 时间:2020-11-09 13:04:53
文档

Mysql命令行技巧汇总

Mysql命令行技巧汇总:1) pager pager真是一个很神奇的东西,它可以控制mysql的输出。默认值是stdout,直接输出。艾,貌似讲不清楚啊,还是看几个例子吧: mysql SELECT mobile FROM profile WHERE mobile!='';+-------------+| mobile |+----
推荐度:
导读Mysql命令行技巧汇总:1) pager pager真是一个很神奇的东西,它可以控制mysql的输出。默认值是stdout,直接输出。艾,貌似讲不清楚啊,还是看几个例子吧: mysql SELECT mobile FROM profile WHERE mobile!='';+-------------+| mobile |+----

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

相当于在输出之后附加了 | grep “137″ ,是不是很震憾。 不止是grep, 所有linux上面的命令都可以的,自由发挥吧。 比如select很多行数据,就可以设置pager more,一页一页地看。 再比如要比较二次select的结果是否相同,可以设置pager md5sum,实在是太赞了。 再比如,只想看select语句运行需要多长时间,而不想看到select出来的结果集,可以使用
pager cat > /dev/null
再比如,看一下processlist里面Sleep的线程有多少,可以使用
pager grep Sleep | wc -l

2) edit

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

3) tee

如果想记录下来您所有的操作及输出,除了屏幕录象软件之外,还有这么一个神奇的东西tee。

mysql> tee /tmp/h.log
Logging 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语句,回车走人。 吃完饭回来就可以看到执行结束的时间了。

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 -p
mysql> 
mysql>

是不是很爽。。

6) html输出

-H

[root@www ~]# /home/mysql/bin/mysql -uroot -p -H -e "select host from mysql.user";
Enter password: 
hostlocalhostlocalhostlocalhostlocalhostlocalhostlocalhost[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 ', 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

文档

Mysql命令行技巧汇总

Mysql命令行技巧汇总:1) pager pager真是一个很神奇的东西,它可以控制mysql的输出。默认值是stdout,直接输出。艾,貌似讲不清楚啊,还是看几个例子吧: mysql SELECT mobile FROM profile WHERE mobile!='';+-------------+| mobile |+----
推荐度:
标签: 一个 小技巧 技巧
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top