如何更加高效地使用 MySQL客户端程序的小技巧

mysql 是我比较常用的命令,因为经常要维护数据库,那么如何才能更加高效地使用 MySQL客户端程序呢,比如更加方便地编辑多行 SQL语句、获得耗时较长的 SQL执行的时间、记录我们都执行了哪些SQL 语句等,下面我们来分别介绍一下:

1、使用 edit 命令调用 vi编辑多行 SQL语句:
mysql -uroot

shell# mysql -uroot
mysql> edit

2、通过修改 prompt 提示符显示我们需要信息,比如主机名,数据库名,MySQL帐号等信息,这样在我们同时开多个终端操作多个主机上不同数据库的时候就能尽量避免误操作,获得耗时较长的 SQL执行的时间。
直接执行 SQL设置:

[root@server ~]# mysql -uroot
mysql> prompt \u@\h/\d>
PROMPT set to '\u@\h/\d>'
root@localhost/(none)>use mysql;
root@localhost/mysql>

我们还可以通过修改配置文件 my.cnf的 [mysql]节设置:
[mysql]
prompt=\u@\h/\d>

还可通过设置 shell变量设置
export MYSQL_PS1=”\u@\h/\d> ”

或者在启动mysql命令是加上 –prompt选项
mysql –prompt=”\u@\h/\d> ”

下面列举一些 prompt可选的值:
\c SQL语句计数器
\D 完整的当前日期
\d 当前数据库
\h 服务器主机名
\l 当前分隔符(delimiter)
\m 当前时间的分钟数
\n 换行符
\O 三个字符格式的当前月份,如:Jan, Feb, …
\o 当前月份的数字表示
\P am/pm
\p 当前的主机端口或者 socket文件
\R 24小时制的时间(0–23)
\r 12小时制的时间(1–12)
\S 分号
\s 当前的秒数
\t 制表符
\U 完整的 user_name@host_name,等同于 \u@\h
\u 当前用户名
\v 服务器版本
\w 三个字符格式的星期,Mon, Tue, …
\Y 四字符的当前年份
\y 两字符的当前年份
\_ 一个空格
\ 空格 (\加一个空格)
\’ 单引号
\” 双引号
\\ 一个 \ 字符

3、在 msyql中执行 tee命令,来记录我们执行的 SQL语句以及输出到文件中。
mysql> tee /tmp/mysql.logs
Logging to file ‘/tmp/mysql.logs’
mysql>

这样直到我们退出 mysql命令之前的所有内容都将被记录到 /tmp/mysql.logs文件中。

4、在 pager中通过 pager命令调用系统的各种命令处理我们 MySQL查询的结果,比如过滤数据,替换显示、格式化等

mysql> pager grep 'baidu.com';
PAGER set to 'grep 'baidu.com''
mysql> select Url from Page limit 0,100;
| baidu.com/                                                       |
| news.baidu.com/                                                  |
| news.baidu.com/resource/css/focustop_feedback.css?v=201212201032 |
| news.baidu.com/resource/css/index_new.css?v=201212141057         |
| news.baidu.com/resource/css/nav_top_p.css?v=201212201032         |
| news.baidu.com/resource/css/search_box.css?v=201212201032        |
| news.baidu.com/resource/css/usrbar_class_browse.css?v=20121220   |
| news.baidu.com/resource/html/bdhx.html?v=20120502                |
| news.baidu.com/resource/js/sug_ajax_new.js?v=201211301519        |
| news.baidu.com/resource/js/tangram_carousel.js?v=1.0             |
| www.baidu.com/                                                   |
11 rows in set (0.00 sec)

mysql> 

Post a Comment

Your email is never shared. Required fields are marked *

*
*