命令行客户端中的 MySQL 命令输出太宽

标签 mysql sql ubuntu terminal-emulator

<分区>

我在 Ubuntu 的终端模拟器 lxterminal 中使用 mysql 命令行客户端。当我运行以下命令时:

mysql> select * from routines where routine_name = "simpleproc";

输出一团糟:

My current output

但如果我将其复制并粘贴到此处,输出会显示一个漂亮的表格:

mysql> select * from routines where routine_name = "simpleproc";

+---------------+-----------------+----------------+--------------+--------------+-----------+--------------------------+------------------------+-------------------+---------------+--------------------+--------------------+----------------+----------------+--------------+--------------------------------------------------------+---------------+-------------------+-----------------+------------------+-----------------+----------+---------------+---------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------+----------------------+----------------------+--------------------+
| SPECIFIC_NAME | ROUTINE_CATALOG | ROUTINE_SCHEMA | ROUTINE_NAME | ROUTINE_TYPE | DATA_TYPE | CHARACTER_MAXIMUM_LENGTH | CHARACTER_OCTET_LENGTH | NUMERIC_PRECISION | NUMERIC_SCALE | DATETIME_PRECISION | CHARACTER_SET_NAME | COLLATION_NAME | DTD_IDENTIFIER | ROUTINE_BODY | ROUTINE_DEFINITION                                     | EXTERNAL_NAME | EXTERNAL_LANGUAGE | PARAMETER_STYLE | IS_DETERMINISTIC | SQL_DATA_ACCESS | SQL_PATH | SECURITY_TYPE | CREATED             | LAST_ALTERED        | SQL_MODE                                                                                                                                  | ROUTINE_COMMENT | DEFINER        | CHARACTER_SET_CLIENT | COLLATION_CONNECTION | DATABASE_COLLATION |
+---------------+-----------------+----------------+--------------+--------------+-----------+--------------------------+------------------------+-------------------+---------------+--------------------+--------------------+----------------+----------------+--------------+--------------------------------------------------------+---------------+-------------------+-----------------+------------------+-----------------+----------+---------------+---------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------+----------------------+----------------------+--------------------+
| simpleproc    | def             | test           | simpleproc   | PROCEDURE    |           |                     NULL |                   NULL |              NULL |          NULL |               NULL | NULL               | NULL           | NULL           | SQL          | BEGIN


SELECT COUNT(*) INTO param1 FROM CUSTOMERS1;

END | NULL          | NULL              | SQL             | NO               | CONTAINS SQL    | NULL     | DEFINER       | 2018-01-12 15:18:20 | 2018-01-12 15:18:20 | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |                 | root@localhost | utf8                 | utf8_general_ci      | latin1_swedish_ci  |
+---------------+-----------------+----------------+--------------+--------------+-----------+--------------------------+------------------------+-------------------+---------------+--------------------+--------------------+----------------+----------------+--------------+--------------------------------------------------------+---------------+-------------------+-----------------+------------------+-----------------+----------+---------------+---------------------+---------------------+-------------------------------------------------------------------------------------------------------------------------------------------+-----------------+----------------+----------------------+----------------------+--------------------+
1 row in set (0.01 sec)

我想知道是否可以在终端仿真器中将输出视为像这样的漂亮表格?

最佳答案

使用mysqlego命令

来自 mysqlhelp 命令:

ego          (\G) Send command to mysql server, display result vertically.

因此,通过将 \G 附加到您的 select,您可以获得非常干净的垂直输出:

mysql> select * from routines where routine_name = "simpleproc" \G

使用寻呼机

您可以告诉 MySQL 使用 less 寻呼机及其 -S 选项,该选项可以截断宽行并为您提供可以使用箭头键滚动的输出:

mysql> pager less -S

因此,下次您运行具有宽输出的命令时,MySQL 将允许您使用 less 分页器浏览输出:

mysql> select * from routines where routine_name = "simpleproc";

如果您完成了分页器并想返回到 stdout 上的常规输出,请使用:

mysql> nopager

关于命令行客户端中的 MySQL 命令输出太宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48272997/

相关文章:

mysql - 当我将超过 1600 个(大约)帖子导入 Wordpress 时,我的网站崩溃了,是否有数据库限制?

php - 通过 ajax 将变量发布到 mysql 数据库 - phonegap

python - 在没有 Pip 或 setup.py 的 Ubuntu 16.04 上安装 Python 模块 easygui

shell - 存储 shell 脚本密码的最佳方法是什么?

c# - Mono 消费 WCF 服务失败 ServiceClient Linux

php - 使用 PHP、MYSQL、GROUP_CONCAT 和 JOIN 进行空间搜索

mysql - 从多个几乎相同的表中选择具有最大日期的行

mysql检查房间是否存在于特定日期和持续时间

sql - 将 SQL Server 版本号与名称相关联

php - 检查数据库中是否存在变量或者是否设置了变量