- MySQL數據庫管理與開發實踐教程 (清華電腦學堂)
- 程朝斌
- 2668字
- 2021-03-19 18:16:47
1.7 MySQL實用工具
在MySQL安裝目錄下的bin目錄中存放了很多應用程序,這些應用程序都是MySQL的工具集。本節將介紹其中最實用的5個工具,分別是mysql、mysqladmin、mysqlshow、mysqlbinlog和perror。
1.7.1 查看工具集
查看MySQL系統自帶工具集的方法很簡單,只需找到MySQL數據庫的安裝路徑下并打開bin目錄即可看到,如圖1-28所示。

圖1-28 bin文件夾下的命令
從圖1-28中可以看出,MySQL中自帶了多個命令工具,通過執行這些命令可以實現不同的操作,大多數的操作都是通過MySQL命令來實現的。另外,mysqladmin命令主要用來對數據庫做一些簡單的操作,以及顯示服務器狀態等。如表1-1所示對圖1-28中的實用工具進行了簡單說明。
表1-1 MySQL中的常用命令工具

技巧
為了方便在命令下使用這些工具,可以將MySQL 的bin 目錄添加到系統的path 變量中,例如,本示例中的路徑是“D:\Program Files\MySQL\MySQL Server 5.6\bin”。
1.7.2 mysql工具
在所有工具集中最常用的就是mysql,它其實是一個MySQL的客戶端,支持交互式和非交互式使用。交互使用時查詢結果采用ASCII表格式。當采用非交互式(例如,用作過濾器)模式時,結果為Tab分隔符格式。
mysql工具基本語法如下:
mysql [options] [database]
執行mysql或“mysql -?”語句可查看詳細幫助信息,如表1-2所示對幫助信息中常用的一些選項進行了介紹。
表1-2 mysql工具常用選項

例如,直接在DOS窗口中執行mysql –V命令查看版本信息,輸出結果如下。
C:\Users\Administrator>mysql -V mysql Ver 14.14 Distrib 5.6.19, for Win32 (x86)
【范例10】
使用mysql工具以root身份登錄到MySQL服務器,并運行status命令查看當前MySQL服務器的狀態,執行語句如下。
C:\Users\Administrator>mysql -u root -p
上述語句執行后會要求用戶輸入root的登錄密碼,如果連接成功將顯示歡迎信息,并顯示當前MySQL的版本號,同時顯示有mysql>提示符表示進入命令行狀態。此時輸入“status”表示運行status命令,將看到返回結果,如圖1-29所示。

圖1-29 使用mysql工具查看服務器狀態
1.7.3 mysqladmin工具
mysqladmin工具主要用來對數據庫做一些簡單操作,以及顯示服務器狀態等。mysqladmin的基本語法格式如下:
mysqladmin [option] command [command option] command …
直接在DOS窗口中執行mysqladmin語句或者輸入“mysqladmin -?”可以查看詳細語法及參數信息。
1.mysqladmin功能選項
mysqladmin的幫助信息包括三部分,第一部分為mysqladmin的功能選項,如表1-3所示對常用的選項進行了說明。
表1-3 mysqladmin的功能選項

【范例11】
例如,要查看當前mysqladmin的版本可用-V選項,執行結果如下。
C:\Users\Administrator>mysqladmin -V mysqladmin Ver 8.42 Distrib 5.6.19, for Win32 on x86
2.mysqladmin命令選項
mysqladmin幫助信息的第二部分表示mysqladmin的相關變量,這里不再對這些變量進行說明。第三部分表示mysqladmin可以執行的相關服務器命令。如表1-4所示針對這些命令進行了詳細說明。
表1-4 mysqladmin的命令選項

【范例12】
使用mysqladmin工具連接到MySQL并執行version命令查看MySQL數據庫版本。執行結果如下。
C:\Users\Administrator>mysqladmin -u root -p version Enter password: ****** mysqladmin Ver 8.42 Distrib 5.6.19, for Win32 on x86 Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Server version 5.6.19 Protocol version 10 Connection localhost via TCP/IP TCP port 3306 Uptime: 2 hours 2 min 39 sec Threads: 1 Questions: 2 Slow queries: 0 Opens: 67 Flush tables: 1 Open tables: 60 Queries per second avg: 0.000
【范例13】
使用mysqladmin工具連接到MySQL并執行processlist命令查看MySQL中的活躍線程列表。執行結果如下。
C:\Users\Administrator> mysqladmin -u root -p processlist Enter password: ****** +----+-------+---------+------+---------+--------+-------+----------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------+---------+------+---------+--------+-------+----------+ | 2 | root | localhost:57182 | | Query | 0 | init |show processlist | +-----+------+---------+------+---------+--------+-------+----------+ Uptime: 7512 Threads: 1 Questions: 5 Slow queries: 0 Opens: 67 Flush tables: 1 Open tables: 60 Queries per second avg: 0.000
無論是在范例12還是范例13中,命令執行完畢后都會輸出狀態信息,例如MySQL服務器運行的秒數,如下對輸出的各項信息進行了說明。
(1)Uptime:表示MySQL服務器已經運行的秒數。
(2)Threads:活動線程(客戶)的數量。
(3)Questions:從MySQL啟動以來客戶問題(查詢)的數量。
(4)Slow Queries:執行時間超過long_query_time秒的查詢的數量。
(5)Opens:服務器已經打開的數據庫表的數量。
(6)Flush tables:服務器已經執行的flush…、refresh和reload命令的數量。
(7)Open tables:目前打開的表的數量。
(8)Queries per second avg:執行平均用時秒數。
1.7.4 mysqlshow工具
mysqlshow工具可以快速地查找存在哪些數據庫、數據庫中的表,以及表中的列或者索引?;菊Z法如下:
mysqlshow[options] [db_name [tal_name [col_name]]]
在上述所示的語法中,如果沒有指定數據庫,則顯示所有匹配的數據庫;如果沒有指定數據庫表,則顯示數據庫中所有匹配的表;如果沒有給出列,則顯示表中所有匹配的列和列類型。
mysqlshow命令的常用選項及說明如表1-5所示。
表1-5 mysqlshow選項

【范例14】
下面通過幾個語句演示mysqlshow工具的簡單應用。
(1)使用mysqlshow工具連接到MySQL,如果不帶其他選項默認將顯示出MySQL上的所有數據庫,執行結果如下。
C:\Users\Administrator >mysqlshow -u root -p Enter password: ****** +----------------------------+ | Databases | +----------------------------+ | information_schema | | mysql | | performance_schema | | sakila | | test | | world | +----------------------------+
(2)如果要查看world數據庫下的所有數據表名稱,只需在上述命令的基礎上添加world即可,執行結果如下。
C:\Users\Administrator>mysqlshow world -u root -p Enter password: ****** Database: world +----------------------------+ | Tables | +----------------------------+ | city | | country | | +----------------------------+
(3)如果要查看world數據庫下的所有數據表中包含的行數,只需在上述命令的基礎上為world添加-v選項即可,執行結果如下。
C:\Users\Administrator>mysqlshow world -v -u root -p Enter password: ****** Database: world +-------------------------+----------+ | Tables | Columns| +-------------------------+----------+ | city | 5 | | country | 15 | | countrylanguage | 4 | +-------------------------+----------+ 3 rows in set..
(4)如果希望查看world數據庫city表中字段的詳細信息,只需在world和-v之間添加city即可,執行結果如圖1-30所示。

圖1-30 查看city表字段信息
1.7.5 mysqlbinlog工具
MySQL數據庫將生成的日志文件寫成二進制格式,如果要以文本格式查看這些文件可以使用mysqlbinlog工具。語法如下:
mysqlbinlog [options] log-files…
執行mysqlbinlog或“mysqlbinlog -?”命令可以查看它的幫助信息。該命令顯示的幫助信息包括兩部分,第一部分顯示mysqlbinlog的功能選項,常用選項如表1-6所示;第二部分顯示了mysqlbinlog命令的相關變量。
表1-6 mysqladmin執行的功能選項

通常情況下,可以使用mysqlbinlog工具直接讀取二進制日志文件并將它們用于本地MySQL服務器,也可以使用--read-from-remote-server選項從遠程服務器讀取二進制日志。當讀取遠程二進制日志時,可以通過連接參數選項來指示如何連接服務器,但是它們經常被忽略掉,除非還指定了--read-from-remote-server選項。還可以使用mysqlbinlog來讀取在復制過程中從服務器所寫的中繼日志文件,中繼日志格式與二進制日志文件相同。
【范例15】
例如,下面執行mysqlbinlog工具輸出binlog.000003中包含的所有語句以及其他信息。如果指定的文件不存在,則會輸入提示信息,提示該文件并不存在,結果如下。
C:\Users\Administrator>mysqlbinlog binlog.000003 /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_ TYPE=0*/; DELIMITER /*!*/; mysqlbinlog: File 'binlog.000003' not found (Errcode: 2 - No such file or directory) DELIMITER ; # End of log file ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
提示
本節只是簡單演示了mysqlbinlog命令的使用,關于該命令查看二進制文件的信息還會在后面進行介紹,這里不再進行具體解釋。
1.7.6 perror工具
對于大多數系統錯誤,除了內部文本信息之外,MySQL還會按下面的風格顯示系統錯誤代碼:
message…(errorno:#) message…(Errcode:#)
通過檢查系統文檔或使用perror工具,可以檢查錯誤代碼的意義。perror為系統錯誤代碼或存儲引擎(表處理)錯誤代碼打印其描述信息。其基本語法如下:
perror [options] errorcode
【范例16】
直接執行perror工具顯示的錯誤信息如下:
C:\Users\Administrator>perror 13 64 OS error code 13: Permission denied Win32 error code 13: 數據無效。 Win32 error code 64: 指定的網絡名不再可用。
與前面幾個工具相比,perror工具要簡單得多,這一點從幫助信息中就可以看出來。執行perror工具查看幫助信息,輸出的幫助信息如下:
C:\Users\Administrator>perror perror Ver 2.11, for Win32 (x86) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Usage: perror [OPTIONS] [ERRORCODE [ERRORCODE...]] -?, --help Displays this help and exits. -I, --info Synonym for --help. -s, --silent Only print the error message. -v, --verbose Print error code and message (default). (Defaults to on; use --skip-verbose to disable.) -V, --version Displays version information and exits. Variables (--variable-name=value) and boolean options {false|true} Value (after reading options) --------------------------------- --------------------------------- verbose true
- Embedded Linux Projects Using Yocto Project Cookbook
- 演進式架構(原書第2版)
- 數據庫程序員面試筆試真題與解析
- Python從小白到大牛
- 微服務與事件驅動架構
- Debian 7:System Administration Best Practices
- C語言程序設計
- Learning Raspbian
- 深入剖析Java虛擬機:源碼剖析與實例詳解(基礎卷)
- JSP程序設計與案例實戰(慕課版)
- Drupal 8 Development Cookbook(Second Edition)
- 菜鳥成長之路
- 大象:Thinking in UML(第二版)
- 數據庫技術及應用(Access)(第2版)
- Augmented Reality for Developers