本文更新於2020-06-14,使用MySQL 5.7,操作系統為Deepin 15.4。 在指定參數選項時有兩種方式: “-”+單個縮寫字元+值,值前可加上空白符(“-p”選項例外,若加上則認為稍後輸入密碼,空白後面的值並不被認作密碼)。 “--”+完整單詞+“=”+值 所有工具會使用一些通用選項 ...
本文更新於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]
使用“--”表示字元串對結束,文件名開始,替換完後會覆蓋原文件。
使用重定向不會覆蓋原文件。