在MySQL中,自帶了許多功能比較強(qiáng)大的工具,如mysql、mysqladmin、mysqldump等。這篇博文將寫(xiě)下部分命令工具的用法。
成都創(chuàng)新互聯(lián)是專業(yè)的剛察網(wǎng)站建設(shè)公司,剛察接單;提供成都網(wǎng)站制作、成都做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行剛察網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
Mysql命令是用的最多的一個(gè)命令工具了,為用戶提供一個(gè)命令行接口來(lái)操作管理MySQL 服務(wù)器。可以通過(guò)mysql --help來(lái)查看其詳細(xì)使用方法。
mysql命令選項(xiàng) | 作用 | 說(shuō)明 |
---|---|---|
-u | 指定連接數(shù)據(jù)庫(kù)時(shí)使用的用戶 | |
-p | 指定用戶的密碼 | 可以-p后面直接寫(xiě)密碼,也可以不寫(xiě),進(jìn)行交互式輸入密碼,推薦后者 |
-h | 指定要登錄的主機(jī) | 可選,如果為空,則登錄本機(jī) |
-P | 指定要連接的端口 | 可選,默認(rèn)是3306 |
-e | 可以通過(guò)-e命令直接執(zhí)行SQL語(yǔ)句,而不用進(jìn)入數(shù)據(jù)庫(kù) | 免交互登錄數(shù)據(jù)庫(kù)執(zhí)行SQL語(yǔ)句,通常在腳本中使用 |
-D | 指定要登錄到哪個(gè)庫(kù) | 默認(rèn)不會(huì)登錄到庫(kù),可以省略此選項(xiàng),直接寫(xiě)庫(kù)名 |
-E | 查詢到的結(jié)果以行來(lái)顯示 | 類(lèi)似于每條SQL語(yǔ)句后面加“\G” |
-f | 即使出現(xiàn)SQL錯(cuò)誤,也強(qiáng)制繼續(xù) | 比如在不登陸數(shù)據(jù)庫(kù)執(zhí)行刪除庫(kù)的操作會(huì)有一個(gè)交互式的確認(rèn)操作,可以使用此選項(xiàng)來(lái)避免交互式 |
-X | 將查詢到的數(shù)據(jù)導(dǎo)出位xml文件 | 導(dǎo)出的文件在windows系統(tǒng)中可以使用excel表格打開(kāi) |
-H | 將查詢到的數(shù)據(jù)導(dǎo)出位html文件 | 導(dǎo)出的文件在windows系統(tǒng)中可以使用瀏覽器打開(kāi) |
--prompt | 定制自己的MySQL提示符顯示的內(nèi)容 | 默認(rèn)登登錄到MySQL后的提示符是“mysql >”,可以使用該選項(xiàng)定制提示符 |
--tee | 將操作數(shù)據(jù)庫(kù)所有輸入和輸出的內(nèi)容都記錄進(jìn)文件中 | 在一些較大維護(hù)變更的時(shí)候,為了方便被查,可以將整個(gè)操作過(guò)程中的輸出信息保存到某個(gè)文件中 |
[root@mysql ~]# mysql -uroot -p123.com -h 192.168.20.2 -P3306 mysql -e "show tables;";
# 上述命令的含義如下:
# -uroot:使用root用戶
# -p123.com:密碼是123.com
# -h:登錄的主機(jī)地址是192.168.20.2
# -P:登錄的端口是3306
# mysql:登錄到庫(kù)名為mysql的庫(kù)中
# -e:后面是SQL語(yǔ)句
# 總結(jié):使用密碼為123.com的root用戶,通過(guò)3306端口連接192.168.20.2的mysql庫(kù),查詢mysql庫(kù)中有哪些表。
上述命令返回結(jié)果如下:
[root@mysql ~]# mysql -uroot -p123.com --prompt="\\u@\\h: \\d \\r:\\m:\\s> "
#上述參數(shù)解:\u 表示用戶名, \h 表示主機(jī)名, \d 表示當(dāng)前數(shù)據(jù)庫(kù)(none表示沒(méi)有在任何庫(kù)中);
# \R小時(shí) 24小時(shí)制 \r小時(shí)(12小時(shí)制),\m分種,\s秒,\R小時(shí) 24小時(shí)制
返回結(jié)果如下:
上述方式每次連接都要寫(xiě)那些字符進(jìn)行定制,非常麻煩,可以將其寫(xiě)入配置文件中的clinet字段下,之后再登錄就可以省略了,如下:
[root@mysql ~]# vim /etc/my.cnf #編輯主配置文件
[mysqld]
..........#省略部分內(nèi)容
[client] #注意寫(xiě)在client字段
prompt="\\u@\\h: \\d \\R:\\m:\\s> " #寫(xiě)入該行
# 注:無(wú)需重啟MySQL服務(wù),每次客戶端連接都會(huì)去重新讀取該配置
再次連接就不用再指定了,如下:
#連接數(shù)據(jù)庫(kù)時(shí)使用“--tee”選項(xiàng),并登錄數(shù)據(jù)庫(kù)執(zhí)行一些SQL語(yǔ)句
[root@mysql ~]# mysql -uroot -p123.com --tee=/tmp/opt.log
root@localhost: (none) 14:46:45> show database;
root@localhost: (none) 14:46:54> show databases;
如下(注意屏幕打印的提示信息以及錯(cuò)誤信息):
現(xiàn)在查看--tee指定的log文件,如下:
應(yīng)該可以從上面的文件中看出,記錄的是連接到數(shù)據(jù)庫(kù)后,用戶進(jìn)行的所有操作命令及輸出信息。
同樣,“--tee”這個(gè)配置項(xiàng)也可以寫(xiě)入my.cnf這個(gè)主配置文件中的client字段下,如下:
[root@mysql ~]# mysql -H -uroot -p123.com -e "select * from mysql.user" > a.html
#將查詢的結(jié)果重定向輸出到a.html文件中
[root@mysql ~]# sz a.html #下載這個(gè)文件到本地windows系統(tǒng)
用瀏覽器打開(kāi)下載的文件顯示如下:
同樣,-X選項(xiàng)的使用方式也一樣。
mysqadmin,顧名思義,提供的功能都是與MySQL 管理相關(guān)的各種功能。如MySQL Server狀態(tài)檢查,各種統(tǒng)計(jì)信息的flush,創(chuàng)建/刪除數(shù)據(jù)庫(kù),關(guān)閉MySQL Server 等等。mysqladmin所能做的事情,雖然大部分都可以通過(guò)mysql連接登錄上MySQL Server 之后來(lái)完成,但是大部分通過(guò)mysqladmin來(lái)完成操作會(huì)更簡(jiǎn)單更
方便。
mysqladmin后面可以接選項(xiàng),也可以接命令,這里就不說(shuō)選項(xiàng)了,主要說(shuō)一下命令
命令字 | 作用 |
---|---|
create databasename | 創(chuàng)建一個(gè)庫(kù) |
drop databasename | 刪除一個(gè)庫(kù) |
status | 查詢MySQL的基本狀態(tài)(顯示的信息有限 ) |
extended-status | 查詢服務(wù)器的詳細(xì)狀態(tài)信息(類(lèi)似于在數(shù)據(jù)庫(kù)中執(zhí)行show status;) |
flush-hosts | 刷新服務(wù)器緩存 |
flush-logs | 刷新二進(jìn)制日志文件(如果二進(jìn)制日志功能開(kāi)啟,那么執(zhí)行這個(gè)操作會(huì)生成新的二進(jìn)制日志文件) |
flush-status | 刷新?tīng)顟B(tài)變量 |
flush-tables | 刷新所有表 |
flush-threads | 刷新所有線程緩存 |
flush-privileges | 重新加載授權(quán)表 |
processlist | 查看當(dāng)前連接數(shù)據(jù)庫(kù)的所有ID詳細(xì)信息 |
kill id | 殺掉某個(gè)或多個(gè)連接ID(一般需要先使用processlist查看出ID列表,然后根據(jù)ID將其kill掉 ) |
ping | 檢測(cè)某個(gè)MySQL服務(wù)是否處于啟動(dòng)狀態(tài) |
password | 修改用戶密碼 |
shutdown | 關(guān)閉MySQL服務(wù) |
start-slave | 開(kāi)啟主從復(fù)制 |
stop-slave | 關(guān)閉主從復(fù)制 |
variables | 查詢MySQL服務(wù)中的所有變量 |
version | 查詢MySQL的版本詳細(xì)信息 |
[root@mysql data]# mysqladmin -uroot -p123.com status
返回結(jié)果如下:
服務(wù)啟動(dòng)狀態(tài)下執(zhí)行ping命令:
[root@mysql data]# mysqladmin -uroot -p123.com -h 192.168.20.2 ping
返回結(jié)果如下:
停止服務(wù)后再執(zhí)行ping命令:
[root@mysql data]# mysqladmin -uroot -p123.com -h 192.168.20.2 ping
返回結(jié)果如下:
[root@mysql data]# mysqladmin -uroot -p123.com processlist
返回結(jié)果如下:
使用kill命令字將其連接ID殺掉:
這個(gè)工具其功能就是將MySQL Server中的數(shù)據(jù)以SQL 語(yǔ)句的形式從數(shù)據(jù)庫(kù)中dump 成文本文件。mysqldump是做為MySQL 的一種邏輯備份工具,在我之前的博文中有這個(gè)工具的使用方法:MySQL的備份與恢復(fù)詳解
mysqlbinlog程序的主要功能就是分析MySQL Server 所產(chǎn)生的二進(jìn)制日志(也就是binlog)。
通過(guò)mysqlbinlog,我們可以解析出binlog中指定時(shí)間段或者指定日志起始和結(jié)束位置的內(nèi)容解析成SQL 語(yǔ)句。
使用方法如下:
[root@mysql data]# mysqlbinlog binary_log.000012 #指定二進(jìn)制日志文件即可
返回結(jié)果如下:
———————— 本文至此結(jié)束,感謝閱讀 ————————