2.3MySQL 自帶工具使用介紹

一、mysqlhtml

  首先看看「-e, --execute=name」參數,這個參數是告訴mysql,我只要執行「-e」後
面的某個命令,而不是要經過mysql 鏈接登陸到MySQL Server 上面。此參數在咱們寫一些
基本的MySQL 檢查和監控的腳本中很是有用,我我的就常常在腳本中使用到他。mysql

  若是在鏈接時候使用了「-E, --vertical」參數,登入以後的全部查詢結果都將以縱列c++

顯示,效果和咱們在一條query 以後以「\G」結尾同樣,這個參數的使用場景可能不是特別
多。
sql

  「-H, --html」與「-X, --xml」這兩個參數頗有意思的,在啓用這兩個參數以後,select
出來的全部結果都會按照「Html」與「Xml」格式來輸出,在有些場合之下,好比但願Xml
或者Html 文件格式導出某些報表文件的時候,是很是方便的。數據庫

  「--prompt=name」參數對於作運維的人來講是一個很是重要的參數選項,運維

「sky@localhost : test 04:25:45>」函數

  「--tee=name」參數也是對運維人員很是有用的參數選項,用來告訴mysql,將全部輸
入和輸出內容都記錄進文件。在咱們一些較大維護變動的時候,爲了方便被查,最好是將整
個操做過程的全部輸入和輸出內容都保存下來。有了「--tee=name」參數,就不再用經過
copy 屏幕來保存操做過程了。工具

  「-U, --safe-updates」,「--select_limit=#」和「--max_join_size=#」三個參數都
是出於性能相關考慮的參數。使用「-U, --safe-updates」參數以後,將禁止全部不能使用
索引的update 和delete 操做的請求,「--select_limit=#」的使用前提是有「-U, --safeupdates」
參數,功能是限制查詢記錄的條數,「--max_join_size=#」也須要與「-U, --safeupdates」
一塊兒使用,限制參與join 的最大記錄數。性能

  「--show-warnings」參數做用是在執行完每一條query 以後都會自動執行一次「show
warnings」,顯示出最後一次warning 的內容。測試

mysql 的所
  有參數選項均可以寫在MySQL Server 啓動參數文件(my.cnf)的[mysql]參數group 中,還
有部分鏈接選項參數會從[client]參數group 中讀取,這樣不少參數就能夠不用在每次執行
mysql 的時候都手工輸入,而由mysql 程序本身自動從my.cnf 文件load 這些參數。

  若是讀者朋友但願對mysql 其餘參數選項或者mysql 的其餘更國有圖有更深刻的瞭解,
能夠經過MySQL 官方參考手冊查閱,也能夠經過執行「mysql --help」獲得幫助信息以後通
過自行實驗來作進一步的深入認識。固然若是您是一位基本能看懂c 語言的朋友,那麼您完
全能夠經過mysql 程序的源代碼來發現其更多有趣的內容。

二、mysqladmin
Usage: mysqladmin [OPTIONS] command command ...
  mysqadmin,顧名思義,提供的功能都是與MySQL 管理相關的各類功能。如MySQL Server
狀態檢查,各類統計信息的flush,建立/刪除數據庫,關閉MySQL Server 等等。mysqladmin
所能作的事情,雖然大部分均可以經過mysql 鏈接登陸上MySQL Server 以後來完成,可是
大部分經過mysqladmin 來完成操做會更簡單更方便。這裏我將介紹一下本身常用到的
幾個經常使用功能:

  ping 命令能夠很容易檢測MySQL Server 是否還能正常提供服務
sky@sky:~# mysqladmin -u sky -ppwd -h localhost ping
mysqld is alive

  status 命令能夠獲取當前MySQL Server 的幾個基本的狀態值:
sky@sky:~# mysqladmin -u sky -ppwd -h localhost status
Uptime: 20960 Threads: 1 Questions: 75 Slow queries: 0 Opens: 15 Flush
tables: 1 Open tables: 9 Queries per second avg: 0.3

  processlist 獲取當前數據庫的鏈接線程信息:
sky@sky:~# mysqladmin -u sky -ppwd -h localhost processlist
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+----+---------+------+-------+------------------+
| 48 | sky | localhost | | Query | 0 | | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

  上面的這三個功能是我在本身的一些簡單監控腳本中常用到的,雖然獲得的信息還
是比較有限,可是對於完成一些比較基本的監控來講,已經足夠勝任了。此外,還能夠經過
mysqladmin 來start slave 和stop slave,kill 某個鏈接到MySQL Server 的線程等等。

三、mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]

  mysqldump 這個工具我想大部分讀者可能都比較熟悉了,其功能就是將MySQL Server
中的數據以SQL 語句的形式從數據庫中dump 成文本文件。雖然mysqldump 是作爲MySQL 的
一種邏輯備份工具爲你們所認識,但我我的以爲稱他爲SQL 生成導出工具更合適一點,由於
經過mysqldump 所生成的文件,所有是SQL 語句,包括數據庫和表的建立語句。固然,經過
給mysqldump 程序加「-T」選項參數以後,能夠生成非SQL 形式的指定給是的文本文件。這
個功能其實是調用了MySQL 中的「select * into OUTFILE from ...」語句而實現。也可
以經過「-d,--no-data」僅僅生成結構建立的語句。在聲稱SQL 語句的時候,字符集設置這
一項也是比較關鍵的,建議每次執行mysqldump 程序的時候都經過儘可能作到「--defaultcharacter-
set=name」顯式指定字符集內容,以防止以錯誤的字符集生成不可用的內容。
mysqldump 所生成的SQL 文件能夠經過mysql 工具執行。

四、mysqlimport
Usage: mysqlimport [OPTIONS] database textfile ...
  mysqlimport 程序是一個將以特定格式存放的文本數據(如經過「select * into
OUTFILE from ...」所生成的數據文件)導入到指定的MySQL Server 中的工具程序,好比
將一個標準的csv 文件導入到某指定數據庫的指定表中。mysqlimport 工具實際上也只是
「load data infile」命令的一個包裝實現。

五、mysqlbinlog
Usage: mysqlbinlog [OPTIONS] log-files
  mysqlbinlog 程序的主要功能就是分析MySQL Server 所產生的二進制日誌(也就是大
家所熟知的binlog)。當咱們但願經過以前備份的binlog 作一些指定時間之類的恢復的時
候,mysqlbinlog 就能夠幫助咱們找到恢復操做須要作哪些事情。經過mysqlbinlog,咱們
能夠解析出binlog 中指定時間段或者指定日誌起始和結束位置的內容解析成SQL 語句,並
導出到指定的文件中,在解析過程當中,還能夠經過指定數據庫名稱來過濾輸出內容。

六、mysqlcheck
Usage: mysqlcheck [OPTIONS] database [tables]
OR mysqlcheck [OPTIONS] --databases DB1 [DB2 DB3...]
OR mysqlcheck [OPTIONS] --all-databases

  mysqlcheck 工具程序能夠檢查(check),修復(repair),分析( analyze)和優化
(optimize)MySQL Server 中的表,但並非全部的存儲引擎都支持這裏全部的四個功能,
像Innodb 就不支持修復功能。實際上,mysqlcheck 程序的這四個功能均可以經過mysql 連
接登陸到MySQL Server 以後來執行相應命令完成徹底相同的任務。

七、myisamchk
Usage: myisamchk [OPTIONS] tables[.MYI]
  功能有點相似「mysqlcheck -c/-r」,對檢查和修復MyISAM 存儲引擎的表,但只能對
MyISAM 存儲引擎的索引文件有效,並且不用登陸鏈接上MySQL Server 便可完成操做。

 

八、myisampack
Usage: myisampack [OPTIONS] filename ...
  對MyISAM 表進行壓縮處理,以縮減佔用存儲空間,通常主要用在歸檔備份的場景下,
並且壓縮後的MyISAM 表會變成只讀,不能進行任何修改操做。當咱們但願歸檔備份某些歷
史數據表,而又但願該表可以提供較爲高效的查詢服務的時候,就能夠經過myisampack 工
具程序來對該MyISAM 表進行壓縮,由於即便雖然更換成archive 存儲引擎也可以將表變成
只讀的壓縮表,可是archive 表是沒有索引支持的,而經過壓縮後的MyISAM 表仍然可使
用其索引。

九、mysqlhotcopy
Usage: mysqlhotcopy db_name[./table_regex/] [new_db_name | directory]
  mysqlhotcopy 和其餘的客戶端工具程序不太同樣的是他不是c(或者c++)程序編寫的,
而是一個perl 腳本程序,僅能在Unix/Linux 環境下使用。他的主要功能就是對MySQL 中
的MyISAM 存儲引擎的表進行在線備份操做,其備份操做實際上就是經過對數據庫中的表進
行加鎖,而後複製其結構,數據和索引文件來完成備份操做,固然,也能夠經過指定「--
noindices」告訴mysqlhotcopy 不須要備份索引文件。

十、其餘工具  除了上面介紹的這些工具程序以外,MySQL 還有自帶了其餘大量的工具程序,如針對離線Innodb 文件作checksum 的innochecksum,轉換mSQL C API 函數的msql2mysql,dumpMyISAM 全文索引的myisam_ftdump,分析處理slowlog 的mysqldumpslow,查詢mysql相關開發包位置和include 文件位置的mysql_config, 向MySQL AB 報告bug 的mysqlbug,測試套件mysqltest 和mysql_client_test , 批量修改表存儲引擎類型的mysql_convert_table_format, 能從更新日誌中提取給定匹配規則的query 語句的mysql_find_rows,更改MyIsam 存儲引擎表後綴名的mysql_fix_extensions,修復系統表的mysql_fix_privilege_tables,查看數據庫相關對象結構的mysqlshow,MySQL 升級工具mysql_upgrade,經過給定匹配模式來kill 客戶端鏈接線程的mysql_zap,查看錯誤號信息的perror,文本替換工具replace,等等一系列工具程序可供咱們使用。若是您但願在MySQL源代碼的基礎上作一些本身的修改,如修改MyISAM 存儲引擎的時候,能夠利用myisamlog來進行跟蹤分析MyISAM 的log。

相關文章
相關標籤/搜索