您好,登錄后才能下訂單哦!
在MySQL中,自帶了許多功能比較強大的工具,如mysql、mysqladmin、mysqldump等。這篇博文將寫下部分命令工具的用法。
Mysql命令是用的最多的一個命令工具了,為用戶提供一個命令行接口來操作管理MySQL 服務器。可以通過mysql --help來查看其詳細使用方法。
mysql命令選項 | 作用 | 說明 |
---|---|---|
-u | 指定連接數據庫時使用的用戶 | |
-p | 指定用戶的密碼 | 可以-p后面直接寫密碼,也可以不寫,進行交互式輸入密碼,推薦后者 |
-h | 指定要登錄的主機 | 可選,如果為空,則登錄本機 |
-P | 指定要連接的端口 | 可選,默認是3306 |
-e | 可以通過-e命令直接執行SQL語句,而不用進入數據庫 | 免交互登錄數據庫執行SQL語句,通常在腳本中使用 |
-D | 指定要登錄到哪個庫 | 默認不會登錄到庫,可以省略此選項,直接寫庫名 |
-E | 查詢到的結果以行來顯示 | 類似于每條SQL語句后面加“\G” |
-f | 即使出現SQL錯誤,也強制繼續 | 比如在不登陸數據庫執行刪除庫的操作會有一個交互式的確認操作,可以使用此選項來避免交互式 |
-X | 將查詢到的數據導出位xml文件 | 導出的文件在windows系統中可以使用excel表格打開 |
-H | 將查詢到的數據導出位html文件 | 導出的文件在windows系統中可以使用瀏覽器打開 |
--prompt | 定制自己的MySQL提示符顯示的內容 | 默認登登錄到MySQL后的提示符是“mysql >”,可以使用該選項定制提示符 |
--tee | 將操作數據庫所有輸入和輸出的內容都記錄進文件中 | 在一些較大維護變更的時候,為了方便被查,可以將整個操作過程中的輸出信息保存到某個文件中 |
[root@mysql ~]# mysql -uroot -p123.com -h 192.168.20.2 -P3306 mysql -e "show tables;";
# 上述命令的含義如下:
# -uroot:使用root用戶
# -p123.com:密碼是123.com
# -h:登錄的主機地址是192.168.20.2
# -P:登錄的端口是3306
# mysql:登錄到庫名為mysql的庫中
# -e:后面是SQL語句
# 總結:使用密碼為123.com的root用戶,通過3306端口連接192.168.20.2的mysql庫,查詢mysql庫中有哪些表。
上述命令返回結果如下:
[root@mysql ~]# mysql -uroot -p123.com --prompt="\\u@\\h: \\d \\r:\\m:\\s> "
#上述參數解:\u 表示用戶名, \h 表示主機名, \d 表示當前數據庫(none表示沒有在任何庫中);
# \R小時 24小時制 \r小時(12小時制),\m分種,\s秒,\R小時 24小時制
返回結果如下:
上述方式每次連接都要寫那些字符進行定制,非常麻煩,可以將其寫入配置文件中的clinet字段下,之后再登錄就可以省略了,如下:
[root@mysql ~]# vim /etc/my.cnf #編輯主配置文件
[mysqld]
..........#省略部分內容
[client] #注意寫在client字段
prompt="\\u@\\h: \\d \\R:\\m:\\s> " #寫入該行
# 注:無需重啟MySQL服務,每次客戶端連接都會去重新讀取該配置
再次連接就不用再指定了,如下:
#連接數據庫時使用“--tee”選項,并登錄數據庫執行一些SQL語句
[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;
如下(注意屏幕打印的提示信息以及錯誤信息):
現在查看--tee指定的log文件,如下:
應該可以從上面的文件中看出,記錄的是連接到數據庫后,用戶進行的所有操作命令及輸出信息。
同樣,“--tee”這個配置項也可以寫入my.cnf這個主配置文件中的client字段下,如下:
[root@mysql ~]# mysql -H -uroot -p123.com -e "select * from mysql.user" > a.html
#將查詢的結果重定向輸出到a.html文件中
[root@mysql ~]# sz a.html #下載這個文件到本地windows系統
用瀏覽器打開下載的文件顯示如下:
同樣,-X選項的使用方式也一樣。
mysqadmin,顧名思義,提供的功能都是與MySQL 管理相關的各種功能。如MySQL Server狀態檢查,各種統計信息的flush,創建/刪除數據庫,關閉MySQL Server 等等。mysqladmin所能做的事情,雖然大部分都可以通過mysql連接登錄上MySQL Server 之后來完成,但是大部分通過mysqladmin來完成操作會更簡單更
方便。
mysqladmin后面可以接選項,也可以接命令,這里就不說選項了,主要說一下命令
命令字 | 作用 |
---|---|
create databasename | 創建一個庫 |
drop databasename | 刪除一個庫 |
status | 查詢MySQL的基本狀態(顯示的信息有限 ) |
extended-status | 查詢服務器的詳細狀態信息(類似于在數據庫中執行show status;) |
flush-hosts | 刷新服務器緩存 |
flush-logs | 刷新二進制日志文件(如果二進制日志功能開啟,那么執行這個操作會生成新的二進制日志文件) |
flush-status | 刷新狀態變量 |
flush-tables | 刷新所有表 |
flush-threads | 刷新所有線程緩存 |
flush-privileges | 重新加載授權表 |
processlist | 查看當前連接數據庫的所有ID詳細信息 |
kill id | 殺掉某個或多個連接ID(一般需要先使用processlist查看出ID列表,然后根據ID將其kill掉 ) |
ping | 檢測某個MySQL服務是否處于啟動狀態 |
password | 修改用戶密碼 |
shutdown | 關閉MySQL服務 |
start-slave | 開啟主從復制 |
stop-slave | 關閉主從復制 |
variables | 查詢MySQL服務中的所有變量 |
version | 查詢MySQL的版本詳細信息 |
[root@mysql data]# mysqladmin -uroot -p123.com status
返回結果如下:
服務啟動狀態下執行ping命令:
[root@mysql data]# mysqladmin -uroot -p123.com -h 192.168.20.2 ping
返回結果如下:
停止服務后再執行ping命令:
[root@mysql data]# mysqladmin -uroot -p123.com -h 192.168.20.2 ping
返回結果如下:
[root@mysql data]# mysqladmin -uroot -p123.com processlist
返回結果如下:
使用kill命令字將其連接ID殺掉:
這個工具其功能就是將MySQL Server中的數據以SQL 語句的形式從數據庫中dump 成文本文件。mysqldump是做為MySQL 的一種邏輯備份工具,在我之前的博文中有這個工具的使用方法:MySQL的備份與恢復詳解
mysqlbinlog程序的主要功能就是分析MySQL Server 所產生的二進制日志(也就是binlog)。
通過mysqlbinlog,我們可以解析出binlog中指定時間段或者指定日志起始和結束位置的內容解析成SQL 語句。
使用方法如下:
[root@mysql data]# mysqlbinlog binary_log.000012 #指定二進制日志文件即可
返回結果如下:
———————— 本文至此結束,感謝閱讀 ————————
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。