一、系統資料庫 MySQL資料庫安裝完成後,自帶了四個資料庫: mysql資料庫:存儲MySQL伺服器正常運行所需要的各種信息如時區、主從、用戶、許可權等 infomation_schema:提供了訪問資料庫元數據的各種表和視圖,包含資料庫、表、欄位類型及訪問許可權等 performance_schem ...
一、系統資料庫
MySQL資料庫安裝完成後,自帶了四個資料庫:
- mysql資料庫:存儲MySQL伺服器正常運行所需要的各種信息如時區、主從、用戶、許可權等
- infomation_schema:提供了訪問資料庫元數據的各種表和視圖,包含資料庫、表、欄位類型及訪問許可權等
- performance_schema:為MySQL伺服器運行時狀態提供了一個底層監控功能,主要用於收集資料庫伺服器性能參數
- sys:包含了一系列方便DBA和開發人員利用performance_schema性能資料庫進行性能調優和診斷的視圖
二、mysql客戶端工具
客戶端工具mysql,是連接MySQL伺服器的一個客戶端工具
語法:
mysql [options] [database]
選項:
-
- -u,--user 指定用戶名
- -p,--password 指定密碼,註意這裡是小寫的p
- -h,--host 指定伺服器IP或功能變數名稱,如果是鏈接本機的可以省略
- -P,--port 指定連接埠,如果是預設埠3306可以省略,註意這裡是大寫的P
- -e,--execute 指定執行SQL語句,在MySQL客戶端通過配置MySQL伺服器的連接參數,直接獲取MySQL伺服器執行SQL語句的結果,而不用進入到MySQL伺服器中,對於一些批處理腳本,這種方式尤其方便
示例:
說明1:客戶端配置好參數後,直接就獲取了MySQL伺服器執行SQL後的結果,很方便。
mysql工具導入數據示例:
說明需要導入的數據在”六、mysqldump“章節有講,可以看到第六節再回來看這裡
說明1:先刪除mysql_test中的所有的表
說明2:'<' 表示將備份文件恢復到資料庫
說明3:驗證數據恢覆成功
三、mysqladmin工具
mysqladmin 是一個執行管理操作的客戶端程式,可以用它來檢查伺服器的配置和當前狀態、創建並刪除資料庫等
可以通過mysqladmin --help 查看選項
示例:
四、mysqlbinlog工具
由於伺服器生成的二進位日誌文件以二進位格式保存,所以如果想要查看這些文本,就會使用到mysqlbinlog日誌管理工具
語法:
mysqlbinlog [option] log-files1 log-files2 ...
選項:
-
- -d,--database 指定數據名稱,只列出指定的資料庫相關操作
- -o,--offset 忽略掉日誌中的前n行
- -r,--result-file 將輸出的文本格式日誌輸出到指定文件
- -s,--short-form 顯示簡單格式,省略掉一些信息
- --start-datetime=date1 --stop-datetime=date2 指定日期間隔內的所有日誌
- --start-position=pos1 --stop-position=pos2 指定位置隔間內的所有日誌
說明1:這些匡到的都是binlog日誌,預設從000000編號開始,然後會定期清理前面的日誌文件。
說明2:如果直接使用vi或者vim去打開binlog日誌文件的話,應該是看不懂的亂碼,而使用mysqlbinlog工具打開是可以閱讀的內容
說明3:binlog日誌記錄了數據的操作,所以我們這裡可以查看到剛纔創建表的語句。
五、mysqlshow工具
mysqlshow客戶端對象查找工具、用來查找存在的資料庫、資料庫中的表、表中的列或者索引。
語法:
mysqlshow [options] [db_name [table_name [col_name ]]]
選項:
-
- --count 顯示資料庫及表的統計信息,資料庫、表均可以不指定
- -i 顯示指定資料庫或指定表的狀態信息
示例:
六、mysqldump工具
mysqldump客戶端工具是用來備份資料庫或者不同資料庫之間進行數據遷移。備份內容包含創建表,以及插入表的SQL語句
語法:
mysqldump [options] db_name [tables]
mysqldump [options] --database/-B db1 [db2 db3...]
mysqldump [options] --all-database/-A
連接選項:
-
- -u,--user 指定用戶名
- -p,--password 指定密碼
- -h,--host 指定伺服器ip或功能變數名稱
- -P,--port 指定埠,註意這裡是大寫的P
輸出選項:
-
- --add-drop-database 在每個資料庫創建語句前加上drop-database語句
- --add-frop-table 在每個表創建語句前加上drop table語句,預設是開始;不開啟:--skip-add-drop-table
- -n,--no-create-db 不包含資料庫的創建語句
- -t,--no-create-info 不包含數據表的創建語句, 即僅備份數據,不備份表結構
- -d, --no-data 不包含數據,即僅備份表結構
- -T,--tab=name 自動生成兩個文件:一個.sql文件,創建表結構的語句,一個txt文件,數據文件
示例:
說明1:> mysql_test.sql:表示把mysql_test 備份到mysql_test.sql文件中
說明2:資料庫的備份文件是可以打開查詢的,裡面主要是備份的表結構和數據等。
說明3:在備份資料庫的時候添加了 -t 參數,即不包含數據表的創建語句, 即僅備份數據,不備份表結構,所以導出的備份文件mysql_test2.sql文件比mysql_test文件要小很多
說明4:-T 參數可以跟上一個路徑參數,但是這個路徑要滿足mysql支持的路徑,可以使用secure_file_priv(註意要用下劃線而不是中劃線) 查看支持的路徑
說明5:雖然-T參數路徑報錯了,但是依然還是能生成.sql的表結構文件,只是txt的數據文件沒有生成。
說明6:如果secure_file_priv是NULL的話,可以在mysql的配置文件中設置一下,然後重啟就可以了
說明7:設置好了路徑,便可以獲取想要的文件了
七、mysqlimport工具
mysqlimport是客戶端數據導入工具,用來導入mysqldump加-T參數後導出的文本文件
語法:
mysqlimport [options] db_name textfile1 [textfile2 ...]
說明1:先將mysql_test資料庫中的student表中的數據全部清空
說明2:導入數據的時候,要儘量使用絕對路徑
說明3:再次查詢數據時,就可以查詢到導入的數據了
八、source指令
如果需要導出.sql文件,可以使用mysql中的source指令,註意該指令需要在mysql命令行中執行
說明1:先將mysql_test中的表全部刪除
說明2:在通過source指令,指定恢復的資料庫文件路徑
說明3:再次查詢既可以驗證數據已經恢復,這個方法和mysql工具恢復效果一樣。只不過source需要進入mysql交互界面,而mysql工具不需要進入交互界面。
侯哥語錄:我曾經是一個職業教育者,現在是一個自由開發者。我希望我的分享可以和更多人一起進步。分享一段我喜歡的話給大家:"我所理解的自由不是想乾什麼就乾什麼,而是想不幹什麼就不幹什麼。當你還沒有能力說不得時候,就努力讓自己變得強大,擁有說不得權利。"