您好,欢迎访问一九零五行业门户网

Mysql命令行技巧汇总

1) pager pager真是一个很神奇的东西,它可以控制mysql的输出。默认值是stdout,直接输出。艾,貌似讲不清楚啊,还是看几个例子吧: mysql select mobile from profile where mobile!='';+-------------+| mobile |+-------------+| 13719001986 || 12321423
1) pagerpager真是一个很神奇的东西,它可以控制mysql的输出。默认值是stdout,直接输出。艾,貌似讲不清楚啊,还是看几个例子吧:
mysql> select mobile from profile where mobile!='';+-------------+| mobile |+-------------+| 13719001986 || 123214234 |+-------------+2 rows in set (0.00 sec)?mysql> mysql> pager grep 137pager 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
2) edit肯定有人会有这样的想法:在mysql命令行里面编辑一个复杂点的sql语句实在是太费神了,光标只能左右移动,要是有个vi就好多啦。其实真的有….mysql> edit就这么简单,谁用谁知道。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语句,回车走人。吃完饭回来就可以看到执行结束的时间了。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: 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 functionsfor more information, type 'help ', where 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
原文地址:mysql命令行技巧汇总, 感谢原作者分享。
其它类似信息

推荐信息