MySQL Client 有时会被DBA忘记的功能

MySQL · ruyi · 于 2年前发布 · 1672 次阅读

MySQL Client有一些功能我们从来不会用到,为什么不试试呢?

提示

如果你连接的数据库比较多,容易混淆的话,可以用下面的命令对数据库做一个区分提示

mysql> \R production>
PROMPT set to ‘production>’
production>

或者可以如下显示主机和当前数据库

production>\R \u@\h [\d]>
PROMPT set to ‘\u@\h [\d]>’
root@localhost [(none)]>use test
root@localhost [test]>

如下可显示当前时间和当前数据库

mysql> prompt \R:\m:\s \d>
PROMPT set to ‘\R:\m:\s \d>’
09:51:01 test>

配置文件中配置方式:

[mysql]
prompt = “\\R:\\m:\\s \\d> “
pager = “more”

编辑

MySQL客户端可以在线编辑语句并执行,使用\e

mysql> \e

写入要执行的语句然后保存

select * from t
limit 1;

输入一个分隔符;即可执行编辑的语句

mysql> \e
    -> ;
+—+———-+
| a | b |
+—+———-+
| 4 | anteloge |
+—+———-+
1 row in set (0.00 sec)

日志

将执行的关键部分记录到一个日志文件里面

mysql> \R Aliyun>
PROMPT set to ‘Aliyun>’
Aliyun>\T /tmp/tee.log
Logging to file ‘/tmp/tee.log’
Aliyun>select sysdate();
+———————+
| sysdate() |
+———————+
| 2014-03-04 09:17:13 |
+———————+
1 row in set (0.00 sec)

Aliyun>\! cat /tmp/tee.log
Aliyun>select sysdate();
+———————+
| sysdate() |
+———————+
| 2014-03-04 09:17:13 |
+———————+
1 row in set (0.00 sec)

Aliyun>

状态

可以在数据库客户端查看数据库的基本状态,使用\s

Aliyun>\s
————–
mysql Ver 14.14 Distrib 5.6.12, for linux-glibc2.5 (x86_64) using EditLine wrapper

Connection id: 2596261
Current database: test
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ‘/tmp/tee.log’
Using delimiter: ;
Server version: 5.6.12 MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 7 days 14 hours 44 min 50 sec

Threads: 14 Questions: 16993544 Slow queries: 3 Opens: 647 Flush tables: 1 Open tables: 476 Queries per second avg: 25.830
————–

Aliyun>

清除

清除当前输入的查询语句,使用\c

Aliyun>select * from test
-> \c
Aliyun>

翻页

如果结果比较多,可以翻页查看,使用\P

Aliyun>\P less
PAGER set to ‘less’
Aliyun>select * from mysql_status_history limit 1000;
1000 rows in set (0.00 sec)

Aliyun>\P cat > /tmp/test.log
PAGER set to ‘cat > /tmp/test.log’
Aliyun>select * from mysql_status_history limit 1000;
1000 rows in set (0.03 sec)

Aliyun>\! more /tmp/test.log

其他

这节课程里面还有其他一些选项可以使用,你可以使用\?进行查看。


如果这篇文章对您有帮助,不妨微信小额赞助我一下,让我有动力继续写出高质量的帖子。

本帖已经被管理员设置为: 精华帖 !
共收到 2 条回复 MySQL DBA Client
andrew#12年前 1 个赞

@ruyi 这个排版不错。O(∩_∩)O谢谢分享

admin#22年前 0 个赞

一条大河向西流~~~~

回复本帖 (需要登录)