程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 使用命令方式mysql客戶端管理數據庫

使用命令方式mysql客戶端管理數據庫

編輯:關於MYSQL數據庫
MySQL 提供了很多實用工具(也稱客戶端),每個工具都為完成與服務器管理有關的多項任務提供了接口。本章概要介紹最常用的客戶端,深入討論其中兩個突出的工具,mysql 和MySQLadmin

MySQL 提供了很多實用工具(也稱客戶端),每個工具都為完成與服務器管理有關的多項任務提供了接口。本章概要介紹最常用的客戶端,深入討論其中兩個突出的工具,mysql 和mysqladmin .因為MySQL 手冊已經很好地為每個客戶端提供了一般介紹,所以本章把重點放在日常管理活動中最經常使用的那些特性。
當然,並不是所有用戶都對從命令行管理數據庫感興趣,因此,MySQL 開發人員和第三方努力構建了基於GUI 的管理解決方案。本章在結束時將簡要介紹幾個最重要的基於GUI 的管理應用程序。
一.使用命令方式MySQL客戶端管理數據庫
MySQL 綁定了很多客戶端程序(從5.1.4-beta版以來總共有18個)。本節全面介紹了最重要的兩個客戶端(mysql和MySQLadmin) ,最後簡單介紹了其他客戶端。
MySQL客戶端
mysql 客戶端是一個特別有用的SQL shell,能夠管理幾乎MySQL 的每個方面,包括創建、修改和刪除表和數據庫、設置用戶訪問權限、浏覽和修改服務器配置,以及查詢表數據。雖然大多數時間你可能會通過GUI 或API與MySQL交互,但你總會發現這個客戶端對於完成各種管理任務很有價值,特別是其在shell 環境下的腳本功能。其一般用法語法如下:
MySQL [options] [database_name] [noninteractive_arguments]
MySQL 可以采用交互模式或非交互模式使用,這兩種模式都將在本節介紹.無論使用何種模式,一般都需要提供連接選項。雖然所需的憑證取決於特定的服務器配置,但一般都需要主機名(--host=. -h)、用戶名(--user=.-u )和密碼(--passWord=.-P )。通常會希望包括目標數據庫名稱(--database=.-D) ,這樣在進入客戶端後就不必再執行USE 命令了。雖然順序無關緊要,但一般有以下連接選項:
%>MySQL –h yourhost –u yourusername –p –D databasename
注意,密碼不包括在命令行中。例如,考慮試圖連接位於www.example.com 的MySQL 服務器,使用用戶名Jason 、密碼secret 和數據庫corporate :
%> MySQL 一h www.example.com -u jason -p -D corporate
此時,還可以包括其他選項,或者按下Enter鍵,提示你輸入密碼。在提示的時候,你就進入了enter 。如果憑證有效,則將得到客戶端界面的歡迎詞,或者允許執行命令行中包括的任何非交互參數。
1 .以交互模式使用MySQL
為了以交互模式使用MySQL ,需要首先進入該界面。前面己經解釋過,為此需要傳入適當的憑證。根據前面的示例,假定希望與位於www.exomple.com服務器的corporate 數據庫交互:

 %> MySQL -h www.example.com -u jason -p -D corporate
Enter passWord :
welcome to the MySQL monitor.  Command  end with; or \g .
Your MySQL connection id is 2
Server version : 5.1.14-beta-communlty-nt MySQL community Server ( GPL )
Type " help;’or ' \ h ’for help . Type ' \ c " to clear the buffer .
MySQL >
通過MySQL 客戶端連接之後,就可以開始執行sQL 命令。例如,要查看所有現有數據庫的列表,可以使用以下命令:
 MySQL > SHO databases ; 為切換到(或使用)另一個數據庫,例如MySQL 數據庫,使用以下命令:
 mysql> USE MySQL;注解:為切換到mysql 數據庫,幾乎肯定需要root 權限.如果沒root 權限,又沒有其他數據庫可用,則可以切換到MySQL 在安裝時創建的test 數據庫,或者創建一個新數據庫。但如果你依賴於第三方管理你的MySQ安裝,要記住,這個數據庫之前可能由於管理方面的原因而早已被刪除。
切換到MySQL數據庫上下文後,就可以通過以下命令查看所有的表:
 MySQL>show tables;返回的結果是該數據庫下的所有的表。
如果要產看這些表的表結構,例如查詢表host的表結構。可以使用下面的命令:
 MySQL>describe host;     還可以執行sql查詢,如INSERT、SELECT、UPDATE和DELETE。例如,希望選擇MySQL數據庫中的user表的host、user和passWord列的所有的值,並按照host排序:
 MySQL>select host,user,passWord from user order by host;總之,可以通過mysql客戶端執行MySQL能夠理解的任何查詢。
可以通過執行quit、exit、/q或ctrl_D這些命令推出MySQL客戶端。
2 .以批處理模式使用MySQL
MySQL 客戶端還提供了批處理模式功能,用於向數據庫導入模式和數據以及向另一個目標輸送輸出。例如,可以通過使用≤操作符使得MySQL 客戶端使用/poth/to/file 的內容來執行文本文件中的SQL 命令,如下:
 %> MySQL [options] < /poth/to/file這個特性有很多用處。例如,可以每天早晨獲取服務器統計信息,通過電子郵件發送給系統管理員。例如,假設希望監視服務器上發生的執行較慢的查詢數量。創建一個沒有密碼的用戶,名為mysqlmonitor,只賦予該用戶對MySQL 數據庫的usage 權限。然後,創建名為MySQLmon.sql 的文件,添加如下內容:
 SHOW STATUS LIKE “slow_querIEs”;然後,如果你在UNIx 上運行MySQL ,則在crontab中放入如下內容:
 03 * * * mysql -u monitor < MySQLmon.sql | mail -s "Slow querIEs ''
[email protected]
這會創建一個標題為慢速查詢的電子郵件,並在每天凌晨3 點發送給[email protected] 。電子郵件主體將包含狀態變量slow_query的值.
如果你運行的是Windows,可以使用Event Scheduler達到同樣的目的。
順便說一句,還可以登錄到MySQL 客戶端,之後使用source命令執行文件:
 mysql > Source MySQLmon.sql3.有用的MySQL提示
   本節主要介紹MySQL的一些提示信息。
•分頁輸出
可以使用操作系統的分頁命令將輸出分頁。例如:
 %>MySQL <querIEs.sql | more•垂直顯示結果
使用\G選項可以垂直輸出格式顯示查詢結果。這會以更具可讀性的方式顯示返回的數據。考慮以下例子,在此使用\G選擇從MySQL.db表中選擇所有行:
 mysql>user MySQL;
MySQL>select * from db\G
*******************************1.row***********************
Host:%
Db:test%
User:
Select_priv:Y
Insert_priv:Y
Update_priv:Y

*************2.row****************
•查詢日志
以交互方式使用MySQL 客戶端時,將所有結果記錄到文本文件中是有用的,這樣可以在以後再次查看。可以使用tee 或\T 選項後面加上文件名(需要時可以加上路徑),來啟動日志記錄。例如,假設希望將當前會話記錄到文件Session.sql :
 MySQL > \T Session.sql
Logging to file ' session.Sql';
MySQL > show databases ;
+-------------------------------------+
| Database             |
+ ------------------------------------+
| MySQL                |
| test                  |
+-------------------------------------+
日志啟動後,這裡的輸出將原樣記錄到sessi on.sql 中。要在會話期間的任何時候禁用日志,可以執行notee 或\t 。
•獲取服務器統計信,息
執行status或\s 命令會獲取關於當前服務器狀態的一些有用的統計信息,包括正常運行時間、版本、TCP 端口、連接類型、執行的查詢總數和平均每秒查詢數等。
•防止偶然事故
假設要管理一個包含10000 個新聞訂閱成員的表,有一天決定使用MySQL 客戶端來刪除一些不需要的測試賬戶。這是度日如年的一天,如果不假思索地執行以下命令:
 MySQL>DELETE FROM subscribers;而不是
 MySQL>DELETE FROM subscribers WHERE email=”[email protected]”;哎呀,你把整個訂閱用戶數據都刪除了!希望還有最近一次的備份。 --safe –updates選項會防止這樣無意的錯誤,它將拒絕執行沒有where子句的delete或update查詢。有意思的是,你可以使用 –I –am –a –dummy 開關來完成同樣的目的。
•修改MySQL提示符
當同時操作幾個位於不同服務器的數據庫時,很快就會混淆正在使用的是哪個服務器。為明確位置,可以修改默認的提示符,在其中包括主機名。為此有多種方法。
首先,登錄MySQL 時可以在命令行中修改提示符:
 %>MySQL –u Jason –prompt=”(\u@\h)[\d]” –p corporate登錄到控制台後,提示符將為:
 (jason@localhost)[corporate]>其次,為永久地顯示修改後的提示符,還可以在my.cnf文件中的[MySQL]節中修改:
 [MySQL]

prompt=(\u@\h)[\d]>
最後,只應用於Linux,可以在過MySQL_PS1環境變量在提示符中包括主機名:
 %>export MySQL_PS1=”(\u@\h) [\d]”4.查看配置變量和系統狀態
可以通過SHOW VARIABLES命令查看所有服務器配置變量的完備列表:
 MySQL>show variables;   在版本5.0.3中,此命令會返回203個不同的系統變量。如果希望值只查看某一個變量,比如默認的表類型,可以結合使用LIKE:
 MySQL>show variables like “table_type”;這回返回:
 +-------------------------------------+-------------+
| Variable_name         |  value  |
+ ------------------------------------+--------------+
| MySQL                | MyISAM |
+-------------------------------------+-------------+
查看系統狀態信息同樣簡單:
 MySQL>show status;
這回返回:
| Threads_created                   | 28       |
| Threads_running                   | 1        |
| Uptime                            | 5290     |
+-----------------------------------+----------+
245 rows in set (0.00 sec)
   在版本5.0.3中,這個將返回213個不同的狀態變量。如果只查看狀態報告中的某一項,比如發送到的字節總數,使用以下命令:
 show status like "bytes_sent";這將返回:
 +---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Bytes_sent    | 72    |
+---------------+-------+
1 row in set (0.01 sec)
如果要獲取若干組名稱相似的變量,可以使用%通配符。例如,下面這條命令將獲取用來記錄與MySQL的查詢緩存特性相關的統計信息的所有變量:
MySQL>show status like “Qc%”;
5.有用的MySQL選項
     MySQL提供了很多的有用的選項。下面介紹幾個重要的選項:
•--auto-rehash。默認情況下,MySQL 會創建數據庫、表和列名稱的散列,以利於支持自動完成(auto-complete)功能(可以使用Tab 鍵自動完成數據庫、表和列名)。可以通過選項—no-auto-rehash禁用此行為。如果希望重新啟用,可以使用此選項。如果不計劃使用自動完成,可以考慮禁用此選項,這會加速啟動時間。
•--column-names。默認情況下,MySQL 在每個結果集的頂部都包括列名。可以通過選項—no-column-names禁用。如果希望重新啟用,可以使用此選項。
•--compress.-C 。在客戶端和服務器之間通信時啟用壓縮。
•--databas=name ,-D。確定使用的數據庫。當交互地使用MySQL 時,還可以在必要時通過USE命令切換數據庫。
•--default-character-set=character_set。設置字符集。
•--disable_tee。如果已經通過選項--tee 或命令tee 啟用了所有查詢和結果的日志記錄,可以通過此選項禁用此行為。
•--execute-query,-e query 。不需要實際進入客戶端界面就執行查詢。可以用此選項執行多個查詢,只要用分號分隔各個查詢。確保將查詢放在引號中,這樣shell不會把它誤解釋為多個參數。例如:
 %> MySQL -u root -p -e " USE corporate ; SELECT * from product ; "
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved