̃Gg[͂ĂȃubN}[Nɒlj

MySQL :: ページャで画面表示を見やすくする



画面表示が崩れる

デフォルトのmysqlコンソールで作業をしていると、困ったことがある。それは、

  • カラム数の多いテーブルの表示が崩れる(横に長いテーブル)
  • 任意の行(位置)で表示を止めることができない(縦に長いテーブル)


具体的には、以下のようになってしまい、悲しい思いをします。

mysql> select * from KEY_COLUMN_USAGE;
emp_user_opt_by_config_id    |                1 |                          NULL | NULL        
        | NULL                   |
| NULL               | premiscss         | PRIMARY         | NULL          | premiscss    | st
emp_user_opt_by_itationals_id |                1 |                          NULL | NULL       
        | NULL                   |
| NULL               | premiscss         | PRIMARY         | NULL          | premiscss    | st
emp_user_opt_by_itational_id  |                1 |                          NULL | NULL       
        | NULL                   |
| NULL               | prepsychoss       | PRIMARY         | NULL          | prepsychoss  | ch
reset_id                      |                1 |                          NULL | NULL       
        | NULL                   |
+--------------------+-------------------+-----------------+---------------+--------------+---
------------------------------+------------------+-------------------------------+------------
--------+------------------------+
82 rows in set (0.27 sec)

ぐちゃぐちゃ



ページャオプション

そこで、mysqlのページャオプションを指定してログインすると幸せになれます。

% mysql --pager='less -S' -uroot -p

として、mysqlにログインします。

mysql> select * from KEY_COLUMN_USAGE;
+--------------------+-------------------+-----------------+---------------+--------------+---
| CONSTRAINT_CATALOG | CONSTRAINT_SCHEMA | CONSTRAINT_NAME | TABLE_CATALOG | TABLE_SCHEMA | TA
+--------------------+-------------------+-----------------+---------------+--------------+---
| NULL               | mysql             | PRIMARY         | NULL          | mysql        | co
| NULL               | mysql             | PRIMARY         | NULL          | mysql        | co
| NULL               | mysql             | PRIMARY         | NULL          | mysql        | co
| NULL               | mysql             | PRIMARY         | NULL          | mysql        | co
| NULL               | mysql             | PRIMARY         | NULL          | mysql        | co
| NULL               | mysql             | PRIMARY         | NULL          | mysql        | db
| NULL               | mysql             | PRIMARY         | NULL          | mysql        | db
| NULL               | mysql             | PRIMARY         | NULL          | mysql        | db
| NULL               | mysql             | PRIMARY         | NULL          | mysql        | fu
| NULL               | mysql             | PRIMARY         | NULL          | mysql        | he
| NULL               | mysql             | name            | NULL          | mysql        | he
| NULL               | mysql             | PRIMARY         | NULL          | mysql        | he
| NULL               | mysql             | name            | NULL          | mysql        | he
:

※Unix上でしか作動しません。

キー操作 画面移動
↑ キー 1行上にスクロール
↓ キー 1行下にスクロール
→ キー 右方向にスクロール
← キー 左方向にスクロール
B キー 1画面分戻る
スペースキー 1画面分進む



毎回ページャオプションを指定するのは面倒

.zshrc (.bashrc) に定義しておく。下記は .zshrc の場合。

alias mysql="mysql --pager='less -S'"
  • less の -S オプションは、画面幅より長い行を折り返さずに切り捨てる指定。完全に切り捨てるのではなく「→キー」でスクロールして表示可能。



database/mysql/etc/pager.txt