MySQL的命令行其實也能像ORACLE的sql/plus同樣靈活多變
mysql
1、將mysql下執行的內容導出成文件(非into outfile)git
tee /path/file 指定導出文件名稱github
notee 中止導出sql
root@localhost:wm_ztcj> tee /tmp/user.log Logging to file '/tmp/user.log' root@localhost:wm_ztcj> select user,host,password from mysql.user; +-----------------+-----------------------+-------------------------------------------+ | user | host | password | +-----------------+-----------------------+-------------------------------------------+ | root | localhost | *728A5A63A7262B3CDCF9F016C5C8922964944607 | | root | localhost.localdomain | *728A5A63A7262B3CDCF9F016C5C8922964944607 | | root | 127.0.0.1 | *728A5A63A7262B3CDCF9F016C5C8922964944607 | | root | ::1 | *728A5A63A7262B3CDCF9F016C5C8922964944607 | | repl | % | *50C610800D1B52DF4C81430612A0A4DF1B5487DE | | wg_user | % | *C91B3E8D9994614CDC307B3DA6E04616A780E21E | | wm_sns_user | % | *14A720739D63BA762B59848FBB67436EEA6F1D46 | | wm_sns_user | 192.168.0.% | *14A720739D63BA762B59848FBB67436EEA6F1D46 | | wm_sns_user | localhost | *14A720739D63BA762B59848FBB67436EEA6F1D46 | | checker | % | *9A85346FF112526836DB4101A6794463E03D8727 | | zabbix | localhost | *9CBC0CDFECC6EDB55518791A797EAEE799141804 | | wm_ztcj | % | *E1CBA20F460E6A92300A2D40049990345A449EEA | | wm_develop_test | % | *2B084359A06856B7758E41D33BE6D0DD7AB79CCB | | wm_develop_test | localhost | *2B084359A06856B7758E41D33BE6D0DD7AB79CCB | | wm_ztcj | localhost | *E1CBA20F460E6A92300A2D40049990345A449EEA | | wm_develop_test | 192.168.0.% | *2B084359A06856B7758E41D33BE6D0DD7AB79CCB | | root | 192.168.0.% | *728A5A63A7262B3CDCF9F016C5C8922964944607 | +-----------------+-----------------------+-------------------------------------------+ 17 rows in set (0.01 sec) root@localhost:wm_ztcj> notee Outfile disabled. root@localhost:wm_ztcj> exit Bye [mysql@WM_ZTCJ ~]$ more /tmp/user.log root@localhost:wm_ztcj> select user,host,password from mysql.user; +-----------------+-----------------------+-------------------------------------------+ | user | host | password | +-----------------+-----------------------+-------------------------------------------+ | root | localhost | *728A5A63A7262B3CDCF9F016C5C8922964944607 | | root | localhost.localdomain | *728A5A63A7262B3CDCF9F016C5C8922964944607 | | root | 127.0.0.1 | *728A5A63A7262B3CDCF9F016C5C8922964944607 | | root | ::1 | *728A5A63A7262B3CDCF9F016C5C8922964944607 | | repl | % | *50C610800D1B52DF4C81430612A0A4DF1B5487DE | | wg_user | % | *C91B3E8D9994614CDC307B3DA6E04616A780E21E | | wm_sns_user | % | *14A720739D63BA762B59848FBB67436EEA6F1D46 | | wm_sns_user | 192.168.0.% | *14A720739D63BA762B59848FBB67436EEA6F1D46 | | wm_sns_user | localhost | *14A720739D63BA762B59848FBB67436EEA6F1D46 | | checker | % | *9A85346FF112526836DB4101A6794463E03D8727 | | zabbix | localhost | *9CBC0CDFECC6EDB55518791A797EAEE799141804 | | wm_ztcj | % | *E1CBA20F460E6A92300A2D40049990345A449EEA | | wm_develop_test | % | *2B084359A06856B7758E41D33BE6D0DD7AB79CCB | | wm_develop_test | localhost | *2B084359A06856B7758E41D33BE6D0DD7AB79CCB | | wm_ztcj | localhost | *E1CBA20F460E6A92300A2D40049990345A449EEA | | wm_develop_test | 192.168.0.% | *2B084359A06856B7758E41D33BE6D0DD7AB79CCB | | root | 192.168.0.% | *728A5A63A7262B3CDCF9F016C5C8922964944607 | +-----------------+-----------------------+-------------------------------------------+ 17 rows in set (0.01 sec)
2、使用edit編輯vim
有時候數據一整條很長的命令以後,但願從新編輯一下,若是光靠光標左右移動,效果不好,能夠直接edit編輯bash
root@localhost:wm_ztcj_develop> select * from wm_user_dynamic2 limi 1\G ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1 root@localhost:wm_ztcj_develop> edit
這樣就進入了VIM(我將默認的VI編輯器變成了vim)中編譯命令編輯完成以後退出dom
能夠手動指定 set @editor='vim';編輯器
1 select * from wm_user_dynamic2 limit 1 ~ /tmp/sql183PTC [+] "/tmp/sql183PTC" 1L, 39C written -> \G --輸入;或者\G繼續執行以前的命令 *************************** 1. row *************************** ID: 2800626 UID: 1 OUID: 1 CUID: NULL BID: NULL CID: NULL BCID: NULL HDID: NULL PCID: NULL CDID: NULL RID: 2222 ADDTERMINAL: 4 STATE: NULL DISPLAY: 0 TYPE: 1 ADDTIME: 2014-03-26 15:04:38 ADDADMINID: NULL ADDIP: NULL LASTUPDATETIME: NULL LASTUPDATEIP: NULL LASTUPDATEADMINID: NULL
3、MySQL的Pager(頁面顯示風格)
工具
有時數據量大一次顯示完不方便查閱,但願能像more同樣讀取:spa
root@localhost:wm_ztcj_develop> pager more PAGER set to 'more' root@localhost:wm_ztcj_develop> show status; +-----------------------------------------------+----------------+ | Variable_name | Value | +-----------------------------------------------+----------------+ | Aborted_clients | 1666 | | Aborted_connects | 28776 | | Binlog_cache_disk_use | 4 | | Binlog_cache_use | 339021 | | Binlog_stmt_cache_disk_use | 11387 | | Binlog_stmt_cache_use | 67796 | | Bytes_received | 643 | | Bytes_sent | 17685 | | Com_admin_commands | 0 | | Com_assign_to_keycache | 0 | | Com_alter_db | 0 | | Com_alter_db_upgrade | 0 | | Com_alter_event | 0 | | Com_alter_function | 0 | | Com_alter_procedure | 0 | | Com_alter_server | 0 | | Com_alter_table | 0 | | Com_alter_tablespace | 0 | | Com_drop_server | 0 | | Com_drop_table | 0 | | Com_drop_trigger | 0 | | Com_drop_user | 0 | | Com_drop_view | 0 | --More--
若是但願從結果中過濾關鍵字,也可將pager替換成grep工具:
例如想查看innodb中checkponit位置變化
root@localhost:wm_ztcj_develop> pager grep checkpoint PAGER set to 'grep checkpoint' root@localhost:wm_ztcj_develop> show engine innodb status\G select sleep(3);show engine innodb status\G Last checkpoint at 437227579829 1 row in set (0.05 sec) 1 row in set (3.00 sec) Last checkpoint at 437243479330 1 row in set (0.05 sec)
爲了避免影響下次查詢的使用,須要將pager 設置成標準輸出,或者以前的配置
root@localhost:wm_ztcj_develop> pager more PAGER set to 'more' root@localhost:wm_ztcj_develop> \n --設置成標準輸出 PAGER set to stdout root@localhost:wm_ztcj_develop> \P --設置成以前的輸出方式 PAGER set to 'more'
4、給命令行上色
須要下載一個工具grc,並使用配置文件color-mysql-console
[mysql@WM_ZTCJ ~]$ wget http://korpus.juls.savba.sk/~garabik/software/grc/grc_1.5.tar.gz [mysql@WM_ZTCJ ~]$ tar zvxf grc_1.5.tar.gz [mysql@WM_ZTCJ ~]$ cd grc-1.5/ [mysql@WM_ZTCJ ~]$ ./install.sh /usr/local/grc --指定你但願安裝的路徑 安裝完畢以後,上傳color-mysql-console的配置文件 下載地址: [mysql@WM_ZTCJ ~]$ wget https://codeload.github.com/nitso/colour-mysql-console/zip/master 解壓後將配置文件放在當前用戶的家目錄下便可 [mysql@WM_ZTCJ ~]$ echo "alias mysql=$(echo -e 'mysql --prompt="\x1B[31m\\u\x1B[34m@\x1B[32m\\h\x1B[0m:\x1B[36m\\d>\x1B[0m "')" >> .bash_profile
再次登陸mysql:
是否是要比枯燥的黑白色好多了?
5、pager md5sum 校驗
若是在改寫SQL以後但願校驗下改寫的SQL執行結果是否與以前的一直,能夠以下使用:
root@localhost:wm_ztcj> pager md5sum PAGER set to 'md5sum' root@localhost:wm_ztcj> select * from wm_user_info order by id desc limit 1;select * from wm_user_info where id=(select max(id) from wm_user_info); 125138b7769186a6834ad030ad928f74 - 1 row in set (0.41 sec) 125138b7769186a6834ad030ad928f74 - 1 row in set (0.00 sec)
這樣就能夠避免逐條比較記錄了,直接獲取結果。