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

mysql 客戶程序與數據庫服務器連接

編輯:關於MYSQL數據庫

本文通過演示如何使用MySQL客戶程序與數據庫服務器連接。mysql(有時稱為“終端監視器”或只是“監視”)是一個交互式程序,允許你連接一個MySQL服務器,運行查詢並察看結果。mysql可以用於批模式:你預先把查詢放在一個文件中,然後告訴mysql執行文件的內容。使用MySQL的兩個方法都在這裡涉及。

為了看清由MySQL提供的一個選擇項目表了,用--help選項調用它:

shell> MySQL --help

本章假定mysql已經被安裝在你的機器上,並且有一個MySQL服務器你可以連接。如果這不是真的,聯絡你的MySQL管理員。(如果你是管理員,你將需要請教這本手冊的其他章節。)

建立和中止與服務器的連接

1、如何使用客戶機建立連接

為了連接到服務器,從外殼程序(即從 UNIX 提示符,或從 Windows 下的 DOS 控制台)激活 MySQL 程序。命令如下:

shell>MySQL

又如,直接連接一個數據庫:

shell> MySQL db_name

其中的“$”在本書中代表外殼程序提示符。這是 UNIX 標准提示符之一;另一個為“#”。在 Windows 下,提示符類似 “c:\>”。

2、客戶機最常使用的選項:主機、用戶和密碼

為了連接服務器,當你調用mysql時,你通常將需要提供一個MySQL用戶名和很可能,一個口令。如果服務器運行在不是你登錄的一台機器上,你也將需要指定主機名。聯系你的管理員以找出你應該使用什麼連接參數進行連接(即,那個主機,用戶名字和使用的口令)。一旦你知道正確的參數,你應該能象這樣連接:

shell> MySQL -h host -u user -p
Enter passWord: ********

********代表你的口令;當MySQL顯示Enter passWord:提示時輸入它。

在剛開始學習 MySQL 時,大概會為其安全系統而煩惱,因為它使您難於做自己想做的事。(您必須取得創建和訪問數據庫的權限,任何時候連接到數據庫都必須給出自己的名字和口令。)但是,在您通過數據庫錄入和使用自己的記錄後,看法就會馬上改變了。這時您會很欣賞 MySQL 阻止了其他人窺視(或者更惡劣一些,破壞!)您的資料。

下面介紹選項的含義:

-h host_name(可選擇形式:--host=host_name)

希望連接的服務器主機。如果此服務器運行在與 MySQL 相同的機器上,這個選項一般可省略。

-u user_name(可選擇的形式:--user=user_name)

您的 MySQL 用戶名。如果使用 UNIX 且您的 MySQL 用戶名與注冊名相同,則可以省去這個選項;mysql 將使用您的注冊名作為您的 MySQL 名。

在 Windows 下,缺省的用戶名為 ODBC。這可能不一定非常有用。可在命令行上指定一個名字,也可以通過設置 USER 變量在環境變量中設置一個缺省名。如用下列 set 命令指定 paul 的一個用戶名:

-p(可選擇的形式:--passWord)

這個選項告訴 mysql 提示鍵入您的 MySQL 口令。注意:可用 -pyour_password 的形式(可選擇的形式:--password=your_passWord)在命令行上鍵入您的口令。但是,出於安全的考慮,最好不要這樣做。選擇 -p 不跟口令告訴 MySQL 在啟動時提示您鍵入口令。例如:

在看到 Enter passWord: 時,鍵入口令即可。(口令不會顯到屏幕,以免給別人看到。)請注意,MySQL 口令不一定必須與 UNIX 或 Windows 口令相同。

如果完全省略了 -p 選項,MySQL 就認為您不需要口令,不作提示。

請注意:-h 和 -u 選項與跟在它們後面的詞有關,無論選項和後跟的詞之間是否有空格。而 -p 卻不是這樣,如果在命令行上給出口令,-p 和口令之間一定不加空格。

例如,假定我的 MySQL 用戶名和口令分別為 tom 和 secret,希望連接到在我注冊的同一機器上運行的服務器上。下面的 MySQL 命令能完成這項工作:

shell>MySQL –u tom -p

在我鍵入命令後,MySQL 顯示 Enter passWord: 提示鍵入口令。然後我鍵入口令(****** 表明我鍵入了 secret)。

如果一切順利的話,mysql 顯示一串消息和一個“MySQL>”提示,表示它正等待我發布查詢。完整的啟動序列如下所示:

為了連接到在其他某個機器上運行的服務器,需要用 -h 指定主機名。如果該主機為 MySQL.domain.Net,則相應的命令如下所示:

shell>mysql –h MySQL.domain.Net –u tom -p

在後面的說明 MySQL 命令行的多數例子中,為簡單起見,我們打算省去 -h、-u 和 -p 選項。並且假定您將會提供任何所需的選項。

有很多設置賬號的方法,從而不必在每次運行 MySQL 時都在連接參數中進行鍵入。這個問題在前面已經介紹過,你只需在選項文件中提供參數,具體請看3.2.2。您可能會希望現在就跳到該節,以便找到一些更易於連接到服務器的辦法。

3、結束會話

在建立了服務器的一個連接後,可在任何時候鍵入下列命令來結束會話:

quit exit

還可以鍵入 Control-D 來退出,至少在 UNIX 上可以這樣。

利用選項文件簡化連接

在激活 MySQL 時,有可能需要指定諸如主機名、用戶名或口令這樣的連接參數。運行一個程序需要做很多輸入工作,這很快就會讓人厭煩。利用選項文件可以存儲連接參數,減少輸入工作。

例如,對於使用MySQLadmin客戶機來管理數據庫,那麼你很快會厭煩每次使用這麼長的命令行:

shell>MySQL –u root –p varialbles
Enter passWord: *********


你也許會選擇使用全局選項文件來存貯你的參數:

[MySQLadmin]

#也可以用[clIEnt],為所有的客戶機存儲參數

user=root
password=yourpassWord


這樣執行MySQLadmin variables就不會顯示任何存儲拒絕的錯誤,並且你可以用root用戶身份維護數據庫了。

且慢,你立刻會發現,這樣做是一個很大的安全漏洞,因為任何可以讀取選項文件的用戶都可以獲得你的密碼!解決方法是,只提供passWord選項不提供密碼:

[MySQLadmin]
user=root
passWord


這樣你在命令行執行時,會提示你數據密碼:

shell>MySQL varialbles
Enter passWord: *********


但是,你不能不提供passWord選項,否則你還是要在命令行中提供-p選項。

利用 MySQL 的輸入行編輯器

MySQL 具有內建的 GNU Readline 庫,允許對輸入行進行編輯。可以對當前錄入的行進行處理,或調出以前輸入的行並重新執行它們(原樣執行或做進一步的修改後執行)。在錄入一行並發現錯誤時,這是非常方便的;您可以在按 Enter 鍵前,在行內退格並進行修正。如果錄入了一個有錯的查詢,那麼可以調用該查詢並對其進行編輯以解決問題,然後再重新提交它。(如果您在一行上鍵入了整個查詢,這是最容易的方法。)

表1中列出了一些非常有用的編輯序列,除了此表中給出的以外,還有許多輸入編輯命令。利用因特網搜索引擎,應該能夠找到 Readline手冊的聯機版本。此手冊也包含在 Readline 分發包中,可在 http://www.gnu. org/ 的 Gnu Web 站點得到。

表1 MySQL 輸入編輯命令

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved