官术网_书友最值得收藏!

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
主站蜘蛛池模板: 平阴县| 德清县| 石棉县| 浮梁县| 库伦旗| 鄂尔多斯市| 城固县| 象州县| 都江堰市| 常德市| 广丰县| 德清县| 高平市| 唐山市| 鄂尔多斯市| 大竹县| 南岸区| 民乐县| 南康市| 甘洛县| 资源县| 裕民县| 沙河市| 阳泉市| 西宁市| 宁津县| 原阳县| 台湾省| 塔河县| 文水县| 新邵县| 开封市| 汉源县| 依安县| 鱼台县| 玉环县| 阿城市| 黑山县| 濉溪县| 山东省| 徐州市|