mysql(客戶端連接工具)
mysql[options][database]
這里的 options
表示 mysql 的可用選項(xiàng)怀偷,可以一次寫一個(gè)或者多個(gè)仔引,也可以不寫扔仓;database
表示連接的數(shù)據(jù)庫(kù),一次只能寫一個(gè)咖耘,如果不寫当辐,連接成功后需要用 use database
來(lái)進(jìn)入要操作的數(shù)據(jù)庫(kù)
有兩種表達(dá)方式:
-
-
加選項(xiàng)單詞的縮寫字符,加選項(xiàng)值mysql --uroot
-
--
加選項(xiàng)的完整單詞加=
加選項(xiàng)的實(shí)際值mysql --user=root
要了解更多的選項(xiàng)鲤看,可以使用 mysql --help
命令查看
連接選項(xiàng)
-u
或者 --user=name
指定用戶名
-p
或者 --password[=name]
指定密碼
-h
或者 --host=name
指定服務(wù)器 IP 或者域名
-P
或者 --port=#
指定連接端口
客戶端字符集選項(xiàng)
--default-character-set=character-name
執(zhí)行選項(xiàng)
-e
或者 --execute=name
執(zhí)行 SQL 語(yǔ)句并退出
此選項(xiàng)可以直接在 MySQL 客戶端執(zhí)行 SQL 語(yǔ)句缘揪,而不用連接到 MySQL 數(shù)據(jù)庫(kù)后再執(zhí)行
可以連續(xù)執(zhí)行多個(gè) SQL 語(yǔ)句,用分號(hào)隔開(kāi)
mysql -uroot -p -e"select * from dbtest.xixi;select * from dbtest.haha"
格式化選項(xiàng)
-E
或者 --vertical
將輸出方式按照字段順序豎著顯示义桂,類似于 SQL 語(yǔ)句后加 \G
找筝,可以將輸出內(nèi)容比較多的行更清晰完整的顯示,經(jīng)常和 -e
選項(xiàng)一起使用
-s
或者 --silent
去掉 mysql 中的線條框顯示慷吊,字段之間用 tab 進(jìn)行分割袖裕,每條記錄顯示一行
錯(cuò)誤處理選項(xiàng)
-f
或者 --force
強(qiáng)制執(zhí)行 SQL
-v
或者 --verbose
顯示更多信息
--show-warnings
顯示警告信息
myisampack(MyISAM 表壓縮工具)
myisampack tname
壓縮后變成只讀表
mysqladmin(MySQL 管理工具)
mysqladmin 是一個(gè)執(zhí)行管理操作的客戶端程序「绕浚可以用它來(lái)檢查服務(wù)器的配置和當(dāng)前的狀態(tài)急鳄,創(chuàng)建并刪除數(shù)據(jù)庫(kù)等谤民。它的功能和 mysql 客戶端非常類似,主要區(qū)別在于它更側(cè)重于一些管理方面的功能疾宏,比如關(guān)閉數(shù)據(jù)庫(kù)
mysqladmin [options] command [command-options] [command [command-options]]...
mysqlbinlog(日志管理工具)
由于服務(wù)器生成的二進(jìn)制日志文件以二進(jìn)制格式保存张足,所以如果想要檢查這些文件的文本格式,就會(huì)用到 mysqlbinlog 日志管理工具
mysqlbinlog [options] log-files1 log-files2...
option 常用的選項(xiàng)如下:
-d
或者 --database=name
指定數(shù)據(jù)庫(kù)名稱坎藐,只列出指定的數(shù)據(jù)庫(kù)相關(guān)操作
-o
或者 --offset=#
忽略掉日志中的前 n 行命令
-r
或者 -result-file=name
將輸出的文本格式日志輸出到指定文件
-s
或者 -short-form
顯示簡(jiǎn)單格式为牍,省略掉一些信息
--set-charset=char-name
在輸出為文本格式時(shí),在文件的第一行加上 set names char-name
--start-datetime=name
--stop-datetime=name
指定日期間隔內(nèi)的所有日志
--start-position=#
--stop-position=#
指定位置間隔內(nèi)的所有日志
mysqlcheck(MyISM 表維護(hù)工具)
mysqlcheck 客戶端工具可以檢查和修復(fù) MyISAM 表岩馍,還可以優(yōu)化和分析表碉咆,實(shí)際上,它集成了 mysql 工具中的 check蛀恩,repair疫铜,analyze,optimize 的功能
mysqlcheck [options] dbname [table]
mysqlcheck [options] --database db1[db2 db3...]
mysqlcheck [options] --all-database
option 中有以下常用選項(xiàng):
-c
或者 --check
檢查表(默認(rèn))
-r
或者 --repair
修復(fù)表
-a
或者 --analyze
分析表
-o
或者 --optimize
優(yōu)化表
mysqldump(數(shù)據(jù)導(dǎo)出工具)
mysqldump 客戶端工具用來(lái)備份數(shù)據(jù)庫(kù)或在不同數(shù)據(jù)庫(kù)之間進(jìn)行數(shù)據(jù)遷移双谆。備份內(nèi)容包含創(chuàng)建表或裝載表的 SQL 語(yǔ)句
mysqldump [options] dbname [tables]
mysqldump [options] --database db1[db2 db3]...
mysqldump [options] --all-database
mysqldump --help
查看更詳細(xì)功能
輸出內(nèi)容選項(xiàng)
--add-drop-database
每個(gè)數(shù)據(jù)庫(kù)創(chuàng)建語(yǔ)句前加上 drop database 語(yǔ)句
--add-drop-table
在每個(gè)表創(chuàng)建語(yǔ)句前加上 drop table 語(yǔ)句
以上這兩個(gè)選項(xiàng)可以在導(dǎo)入數(shù)據(jù)庫(kù)時(shí)不用先手工刪除舊的數(shù)據(jù)庫(kù)壳咕,而是會(huì)自動(dòng)刪除,提高導(dǎo)入效率佃乘,但是導(dǎo)入前一定要做好備份并且確認(rèn)舊數(shù)據(jù)庫(kù)的確已經(jīng)可以刪除囱井,否則誤操作將會(huì)造成數(shù)據(jù)的損失驹尼。默認(rèn)情況下趣避,這兩個(gè)參數(shù)都是自動(dòng)加上的
-n
或者 --no-create-db
不包含數(shù)據(jù)庫(kù)的創(chuàng)建語(yǔ)句
-t
或者 --no-create-info
不包含數(shù)據(jù)表的創(chuàng)建語(yǔ)句
-d
或者 --no-data
不包含數(shù)據(jù)
輸出格式選項(xiàng)
--compact
使輸出結(jié)果簡(jiǎn)潔,不包括默認(rèn)選項(xiàng)中的各種注釋
-c
或者 --complete-insert
使得輸出文件中的 insert 語(yǔ)句包括字段名稱新翎,默認(rèn)不包括
-T
將指定數(shù)據(jù)表中的數(shù)據(jù)被分為單純的數(shù)據(jù)文本和建表 SQL 兩個(gè)文件
字符集選項(xiàng)
--default-character-set=name
可以設(shè)置導(dǎo)出的客戶端字符集
這個(gè)選項(xiàng)在導(dǎo)出數(shù)據(jù)庫(kù)的時(shí)候非常重要程帕,如果客戶端字符集和數(shù)據(jù)庫(kù)字符集不一致,數(shù)據(jù)在導(dǎo)出的時(shí)候就需要進(jìn)行字符集轉(zhuǎn)換地啰,將數(shù)據(jù)庫(kù)字符集轉(zhuǎn)換為客戶端字符集愁拭,經(jīng)過(guò)轉(zhuǎn)換后的數(shù)據(jù)很可能成為亂碼或者特殊字符,使得備份文件無(wú)法恢復(fù)
其他常用選項(xiàng)
-F
或者 --flush-logs
:備份前刷新日志亏吝。加上此選項(xiàng)后岭埠,備份前將關(guān)閉舊日志,生成新日志蔚鸥。使得進(jìn)行恢復(fù)的時(shí)候直接從新日志開(kāi)始進(jìn)行重做惜论,大大方便了恢復(fù)過(guò)程
-l
或者 --lock-tables
:給所有表加讀鎖≈古纾可以在備份期間使用馆类,使得數(shù)據(jù)無(wú)法被更新,從而使備份的數(shù)據(jù)保持一致性弹谁,可以配合 -F
選項(xiàng)一起使用
mysqlimport(數(shù)據(jù)導(dǎo)入工具)
用來(lái)導(dǎo)入 mysqldump 加 -T 選項(xiàng)后導(dǎo)出的文本文件乾巧。它實(shí)際上是客戶端提供了 load data infile
語(yǔ)句的一個(gè)命令行接口
mysqlimport [options] dbname textfile1 [textfile2]...
mysqlshow(數(shù)據(jù)庫(kù)對(duì)象查看工具)
用來(lái)很快的查找存在哪些數(shù)據(jù)庫(kù)句喜,數(shù)據(jù)庫(kù)中的表,表中的列或索引
mysqlshow [option] [dbname [tablename [colname]]]
如果不加任何選項(xiàng)沟于,默認(rèn)情況下會(huì)顯示所有數(shù)據(jù)庫(kù)
常用選項(xiàng):
--count
:顯示數(shù)據(jù)庫(kù)和表的統(tǒng)計(jì)信息咳胃。如果不指定數(shù)據(jù)庫(kù),則顯示每個(gè)數(shù)據(jù)庫(kù)的名稱社裆,表數(shù)量拙绊,記錄數(shù)量;如果指定數(shù)據(jù)庫(kù)泳秀,則顯示指定數(shù)據(jù)庫(kù)的每個(gè)表名标沪,字段數(shù)量,記錄數(shù)量嗜傅;如果指定具體數(shù)據(jù)庫(kù)中的具體表金句,則顯示表的字段信息
-k
或者 --keys
:顯示指定表中的所有索引
-i
或者 --status
:顯示表的一些狀態(tài)信息
perror(錯(cuò)誤代碼查看工具)
perror [options] [errorcode [errorcode...]]
replace(文本替換工具)
replace from to [from to]... -- file [file]...
replace from to [from to]... < file
--
表示字符串結(jié)束,文件的開(kāi)始吕嘀,可以跟多個(gè)源文件违寞,替換完畢后會(huì)覆蓋原文件
<
表示后面的文件作為輸入,替換后的文本顯示在標(biāo)準(zhǔn)輸出上偶房,不會(huì)覆蓋原文件