本文更新于2020-06-14,使用MySQL 5.7,作業系統為Deepin 15.4,
目錄
- myisamchk——MyISAM表維護工具
- myisampack——MyISAM表壓縮工具
- mysql——客戶端連接工具
- mysqladmin——MySQL管理工具
- mysqlbinlog——日志管理工具
- mysqlcheck——表維護工具
- mysqldump——資料匯出工具
- mysqldumpslow——慢查詢日志匯總工具
- mysqlhotcopy——MyISAM熱備份工具
- mysqlimport——資料匯入工具
- mysqlshow——資料庫物件查看工具
- perror——錯誤代碼查看工具
- replace——文本替換工具
在指定引數選項時有兩種方式:
- “-”+單個縮寫字符+值,值前可加上空白符(“-p”選項例外,若加上則認為稍后輸入密碼,空白后面的值并不被認作密碼),
- “--”+完整單詞+“=”+值
所有工具會使用一些通用選項,通用選項可查看“mysql”小節,
myisamchk——MyISAM表維護工具
myisamchk [options] tablename
options選項如下:
- -r, --repair:修復表,
- -o, --safe-recover:更安全的修復表,
myisampack——MyISAM表壓縮工具
使用很高的壓縮率對MyISAM存盤引擎的表進行壓縮,但壓縮后的表成為只讀表,
myisampack [options] filename
mysql——客戶端連接工具
mysql [options] [database]
如不指定database,則連接成功后需使用USE database 指定要操作的資料庫,
最后加上輸入重定向< filename可以執行檔案內容,
options選項如下:
- 幫助選項(所有工具的通用選項,不再復述)
- -?, --help:查看幫助,
- 連接選項(所有工具的通用選項,不再復述)
- -u, --user=user:指定用戶名,
- -p, --password[=password]:指定密碼,
- -h, --host=host:指定服務器IP或域名,默認為localhost,
- -P, --port=port:指定服務器埠,默認為3306,
- --protocol=protocol:指定連接協議,可為tcp、socket、pipe、memory,如使用localhost作為主機名,默認使用socket,
- 客戶端字符集選項(所有工具的通用選項,不再復述)
- --default-character-set=charset:設定客戶端字符集,相當于執行
SET NAMES charset,
- --default-character-set=charset:設定客戶端字符集,相當于執行
- 執行選項
- -e, --execute=sql:執行SQL陳述句,可連續執行多個SQL陳述句,之間用“;”隔開,
- 格式化選項
- -E, --vertical:將記錄的欄位豎向排列,類似SQL陳述句以
\G結束, - -s, --silent:去掉線條框顯示,欄位之間用tab分隔,每條記錄一行,
- -E, --vertical:將記錄的欄位豎向排列,類似SQL陳述句以
- 錯誤處理選項
- -f, --force:在批量執行SQL時,如執行出錯,跳過并強制執行后續的SQL,如不加該選項,則會停止并退出,
- -v, --verbose:顯示更多資訊,
- --show-warnings:顯示警告資訊,
- 其他選項
- --local-infile[=0|1]:是否使用客戶端本地檔案匯入,
mysqladmin——MySQL管理工具
mysqladmin [options] {command [command_options]}[ ...]
options選項和mysql的類似,不再贅述,
可以執行的命令command如下:
- create databasename
- debug
- drop databasename
- extended-status:查看服務器狀態,同
SHOW STATUS, - flush-hosts
- flush-logs
- flush-status
- flush-tables
- flush-threads
- flush-privileges
- kill id,id,...
- password [new-password]
- ping
- processlist
- reload
- refresh
- shutdown
- status
- start-slave
- stop-slave
- variables
- version
mysqlbinlog——日志管理工具
每一條日志都帶有位置和時間,下面的示例中,位置為603,時間為2018-03-13 18:05:15,因日志格式為ROW且加上了-v選項,最后還顯示了可讀的日志內容,
# at 603
#180313 18:05:15 server id 1 end_log_pos 649 CRC32 0x5bba1b83 Write_rows: table id 245 flags: STMT_END_F
BINLOG '
W6KnWhMBAAAAMQAAAFsCAAAAAPUAAAAAAAEABHRlc3QAA2VtcAACAw8CZAAAzYe0ig==
W6KnWh4BAAAALgAAAIkCAAAAAPUAAAAAAAEAAgAC//wFAAAABXdvcmxkgxu6Ww==
'/*!*/;
### INSERT INTO `test`.`emp`
### SET
### @1=5
### @2='world'
mysqlbinlog [options] log_file[, ...]
options選項如下:
- -d, --database=database:只列出指定資料庫的日志,
- -o, --offset=n:忽略日志中前n條命令,
- -r, --result-file=filename:輸出至指定檔案,
- -s, --short-form:顯示簡單格式,省略掉一些資訊,
- -v:如果日志是ROW格式,加上-v或-vv選項進行查看,否則會顯示base64字串,
- --base64-output=value:若為decode-rows且使用-v,則ROW格式的日志只顯示對應的SQL陳述句,不顯示base64字串,
- --set-charset=charset:在輸出的第一行加上
SET NAMES charset, - --start-datetime=datetime:指定開始時間(含),
- --start-position=position:指定開始位置(含),
- --stop-datetime=datetime:指定結束時間(不含),
- --stop-position=position:指定結束位置(不含),
mysqlcheck——表維護工具
mysqlcheck實際上集成了mysql的ANALYZE、CHECK、OPTIMIZE、REPAIR功能,
mysqlcheck [options] dbname [tablename[, ...]]
mysqlcheck [options] --database dbname[, ...]
mysqlcheck [options] --all-database
options選項如下:
- -a, --analyze:分析表,
- -c, --check:檢查表,默認選項,
- -o, --optimize:優化表,
- -r, --repair:修復表,
mysqldump——資料匯出工具
mysqldump [options] dbname [tablename[ ...]]
mysqldump [options] --databases dbname[ ...]
mysqldump [options] --all-databases
通常會在最后加上> filename將匯出結果重定向至檔案,
options選項如下:
- 資料源選項
- -A, --all-databases:匯出所有資料庫,
- -B, --databases dbname[ ...]:指定資料庫,可指定多個,會包含
CREATE DATABASE, - --ignore-table=dbname.tablename:不匯出指定的表,可使用多次,
- 輸出內容選項
- -d, --no-data:不包含表資料,
- -n, --no-create-db:不包含
CREATE DATABASE, - -R, --routines:包含存盤程序和函式,
- -t, --no-create-info:不包含
CREATE TABLE, - --add-drop-database:在每個
CREATE DATABASE前加上DROP DATABASE,默認加上此選項, - --add-drop-table:在每個
CREATE TABLE前加上DROP TABLE,默認加上此選項, - --triggers:包含觸發器,默認加上此選項,
- 輸出格式選項
- -c, --complete-insert:使輸出的
INSERT陳述句中包含欄位名, - -T, --tab=dirname:備份為建表檔案(.sql)和以資料檔案(.txt),實際上是
SELECT INTO OUTFILE的命令列介面,經常和下面幾個選項配合使用: - --compact:使輸出結果簡潔,不包含注釋,
- --extended-insert:使用包括多條記錄的多行
INSERT語法, - --fields-enclosed-by=name:欄位參考符,與-T一起使用,
- --fields-escaped-by=name:轉義字符,與-T一起使用,
- --fields-optionally-enclosed-by=name:欄位可選參考符,只用在字串型別欄位上,與-T一起使用,
- --fields-terminated-by=name:欄位分隔符,與-T一起使用,
- --lines-terminated-by=name:行結束符,與-T一起使用,
- -c, --complete-insert:使輸出的
- 其他選項
- -F, --flush-logs:備份前重繪日志,即關閉舊日志,生成新日志,使恢復時直接從新日志開始重做,
- -l, --lock-tables:給所有表加讀鎖,
- --quick:用于匯出大表,會一次一行檢索表中的行而不是檢索所有行,并在輸出前將其快取至記憶體中,
- --single-transaction:使事務型存盤引擎得到一個快照,令備份資料保證一致性,事務型存盤引擎使用此選項比使用-l更好,
mysqldumpslow——慢查詢日志匯總工具
mysqldumpslow [options] log_file[, ...]
mysqlhotcopy——MyISAM熱備份工具
mysqlhotcopy是一個Perl腳本,需要安裝Perl的MySQL資料庫介面包,其只適用于MyISAM存盤引擎,且需運行在Linux環境中,
mysqlhotcopy [options] dbname[, ...] [dirname]
options選項如下:
- --allowold:如果備份目錄下有同名備份(也為一目錄),則將舊的改名為“備份名_old”,
- --addtodest:如果備份目錄下有同名備份(也為一目錄),則將檔案加入其中,
- --noindices:不備份索引檔案,
- --flushlog:表被鎖定后重繪日志,
mysqlimport——資料匯入工具
mysqlimport用來匯入mysqldump -T匯出的資料檔案(.txt),實際上是LOAD DATA INFILE的命令列介面,
mysqlimport [options] [--local] dbname txtfile[, ...]
options選項如下:
- -L, --local:使用客戶端本地檔案匯入,
- --fields-enclosed-by=name:欄位參考符,與-T一起使用,
- --fields-escaped-by=name:轉義字符,與-T一起使用,
- --fields-optionally-enclosed-by=name:欄位可選參考符,只用在字串型別欄位上,與-T一起使用,
- --fields-terminated-by=name:欄位分隔符,與-T一起使用,
- --lines-terminated-by=name:行結束符,與-T一起使用,
- --ignore-lines=n:忽略前n行,
資料匯入至txtfile檔案名指定的表,
mysqlshow——資料庫物件查看工具
mysqlshow [options] [dbname [tablename [colname]]]
options選項如下:
如果不加任何選項,會顯示所有資料庫,
- --count:顯示資料庫或表的統計資訊,可以不指定資料庫,指定資料庫,或指定表,
- -k, --keys:顯示指定表的表結構和索引資訊,和
SHOW FULL COLUMNS與SHOW INDEX的結果一致, - -i, --status:顯示表的狀態資訊,和
SHOW TABLE STATUS的結果一致,
perror——錯誤代碼查看工具
perror [options] errorcode[, ...]
errorcode為錯誤碼,位于錯誤資訊的“ERROR”后面,
replace——文本替換工具
replace {from to}[...] -- file[ ...]
replace {from to}[...] < fromfile [> tofile]
使用“--”表示字串對結束,檔案名開始,替換完后會覆寫原檔案,
使用重定向不會覆寫原檔案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/8682.html
標籤:MySQL
上一篇:遇見SQL(3)
