mysql(客戶端連接工具)
mysql[options][database]
這里的 options 表示 mysql 的可用選項,可以一次寫一個或者多個,也可以不寫;database 表示連接的數(shù)據(jù)庫,一次只能寫一個,如果不寫,連接成功后需要用 use database 來進入要操作的數(shù)據(jù)庫
有兩種表達方式:
-
-加選項單詞的縮寫字符,加選項值mysql --uroot -
--加選項的完整單詞加=加選項的實際值mysql --user=root
要了解更多的選項,可以使用 mysql --help 命令查看
連接選項
-u 或者 --user=name 指定用戶名
-p 或者 --password[=name]指定密碼
-h 或者 --host=name 指定服務(wù)器 IP 或者域名
-P 或者 --port=# 指定連接端口
客戶端字符集選項
--default-character-set=character-name
執(zhí)行選項
-e 或者 --execute=name 執(zhí)行 SQL 語句并退出
此選項可以直接在 MySQL 客戶端執(zhí)行 SQL 語句,而不用連接到 MySQL 數(shù)據(jù)庫后再執(zhí)行
可以連續(xù)執(zhí)行多個 SQL 語句,用分號隔開
mysql -uroot -p -e"select * from dbtest.xixi;select * from dbtest.haha"
格式化選項
-E 或者 --vertical 將輸出方式按照字段順序豎著顯示,類似于 SQL 語句后加 \G,可以將輸出內(nèi)容比較多的行更清晰完整的顯示,經(jīng)常和 -e 選項一起使用
-s 或者 --silent 去掉 mysql 中的線條框顯示,字段之間用 tab 進行分割,每條記錄顯示一行
錯誤處理選項
-f 或者 --force 強制執(zhí)行 SQL
-v 或者 --verbose 顯示更多信息
--show-warnings 顯示警告信息
myisampack(MyISAM 表壓縮工具)
myisampack tname
壓縮后變成只讀表
mysqladmin(MySQL 管理工具)
mysqladmin 是一個執(zhí)行管理操作的客戶端程序??梢杂盟鼇頇z查服務(wù)器的配置和當(dāng)前的狀態(tài),創(chuàng)建并刪除數(shù)據(jù)庫等。它的功能和 mysql 客戶端非常類似,主要區(qū)別在于它更側(cè)重于一些管理方面的功能,比如關(guān)閉數(shù)據(jù)庫
mysqladmin [options] command [command-options] [command [command-options]]...
mysqlbinlog(日志管理工具)
由于服務(wù)器生成的二進制日志文件以二進制格式保存,所以如果想要檢查這些文件的文本格式,就會用到 mysqlbinlog 日志管理工具
mysqlbinlog [options] log-files1 log-files2...
option 常用的選項如下:
-d 或者 --database=name 指定數(shù)據(jù)庫名稱,只列出指定的數(shù)據(jù)庫相關(guān)操作
-o 或者 --offset=# 忽略掉日志中的前 n 行命令
-r 或者 -result-file=name 將輸出的文本格式日志輸出到指定文件
-s 或者 -short-form 顯示簡單格式,省略掉一些信息
--set-charset=char-name 在輸出為文本格式時,在文件的第一行加上 set names char-name
--start-datetime=name --stop-datetime=name 指定日期間隔內(nèi)的所有日志
--start-position=# --stop-position=# 指定位置間隔內(nèi)的所有日志
mysqlcheck(MyISM 表維護工具)
mysqlcheck 客戶端工具可以檢查和修復(fù) MyISAM 表,還可以優(yōu)化和分析表,實際上,它集成了 mysql 工具中的 check,repair,analyze,optimize 的功能
mysqlcheck [options] dbname [table]
mysqlcheck [options] --database db1[db2 db3...]
mysqlcheck [options] --all-database
option 中有以下常用選項:
-c 或者 --check 檢查表(默認)
-r 或者 --repair 修復(fù)表
-a 或者 --analyze 分析表
-o 或者 --optimize 優(yōu)化表
mysqldump(數(shù)據(jù)導(dǎo)出工具)
mysqldump 客戶端工具用來備份數(shù)據(jù)庫或在不同數(shù)據(jù)庫之間進行數(shù)據(jù)遷移。備份內(nèi)容包含創(chuàng)建表或裝載表的 SQL 語句
mysqldump [options] dbname [tables]
mysqldump [options] --database db1[db2 db3]...
mysqldump [options] --all-database
mysqldump --help 查看更詳細功能
輸出內(nèi)容選項
--add-drop-database 每個數(shù)據(jù)庫創(chuàng)建語句前加上 drop database 語句
--add-drop-table 在每個表創(chuàng)建語句前加上 drop table 語句
以上這兩個選項可以在導(dǎo)入數(shù)據(jù)庫時不用先手工刪除舊的數(shù)據(jù)庫,而是會自動刪除,提高導(dǎo)入效率,但是導(dǎo)入前一定要做好備份并且確認舊數(shù)據(jù)庫的確已經(jīng)可以刪除,否則誤操作將會造成數(shù)據(jù)的損失。默認情況下,這兩個參數(shù)都是自動加上的
-n 或者 --no-create-db 不包含數(shù)據(jù)庫的創(chuàng)建語句
-t 或者 --no-create-info 不包含數(shù)據(jù)表的創(chuàng)建語句
-d 或者 --no-data 不包含數(shù)據(jù)
輸出格式選項
--compact 使輸出結(jié)果簡潔,不包括默認選項中的各種注釋
-c 或者 --complete-insert 使得輸出文件中的 insert 語句包括字段名稱,默認不包括
-T 將指定數(shù)據(jù)表中的數(shù)據(jù)被分為單純的數(shù)據(jù)文本和建表 SQL 兩個文件
字符集選項
--default-character-set=name 可以設(shè)置導(dǎo)出的客戶端字符集
這個選項在導(dǎo)出數(shù)據(jù)庫的時候非常重要,如果客戶端字符集和數(shù)據(jù)庫字符集不一致,數(shù)據(jù)在導(dǎo)出的時候就需要進行字符集轉(zhuǎn)換,將數(shù)據(jù)庫字符集轉(zhuǎn)換為客戶端字符集,經(jīng)過轉(zhuǎn)換后的數(shù)據(jù)很可能成為亂碼或者特殊字符,使得備份文件無法恢復(fù)
其他常用選項
-F 或者 --flush-logs:備份前刷新日志。加上此選項后,備份前將關(guān)閉舊日志,生成新日志。使得進行恢復(fù)的時候直接從新日志開始進行重做,大大方便了恢復(fù)過程
-l 或者 --lock-tables:給所有表加讀鎖??梢栽趥浞萜陂g使用,使得數(shù)據(jù)無法被更新,從而使備份的數(shù)據(jù)保持一致性,可以配合 -F 選項一起使用
mysqlimport(數(shù)據(jù)導(dǎo)入工具)
用來導(dǎo)入 mysqldump 加 -T 選項后導(dǎo)出的文本文件。它實際上是客戶端提供了 load data infile 語句的一個命令行接口
mysqlimport [options] dbname textfile1 [textfile2]...
mysqlshow(數(shù)據(jù)庫對象查看工具)
用來很快的查找存在哪些數(shù)據(jù)庫,數(shù)據(jù)庫中的表,表中的列或索引
mysqlshow [option] [dbname [tablename [colname]]]
如果不加任何選項,默認情況下會顯示所有數(shù)據(jù)庫
常用選項:
--count:顯示數(shù)據(jù)庫和表的統(tǒng)計信息。如果不指定數(shù)據(jù)庫,則顯示每個數(shù)據(jù)庫的名稱,表數(shù)量,記錄數(shù)量;如果指定數(shù)據(jù)庫,則顯示指定數(shù)據(jù)庫的每個表名,字段數(shù)量,記錄數(shù)量;如果指定具體數(shù)據(jù)庫中的具體表,則顯示表的字段信息
-k 或者 --keys:顯示指定表中的所有索引
-i 或者 --status:顯示表的一些狀態(tài)信息
perror(錯誤代碼查看工具)
perror [options] [errorcode [errorcode...]]
replace(文本替換工具)
replace from to [from to]... -- file [file]...
replace from to [from to]... < file
-- 表示字符串結(jié)束,文件的開始,可以跟多個源文件,替換完畢后會覆蓋原文件
< 表示后面的文件作為輸入,替換后的文本顯示在標準輸出上,不會覆蓋原文件