cuit網路存儲
① 修改mysql密碼無效
由於MySQL伺服器具有多種安裝分發,而且能夠運行在多種操作平台之上,因此它的啟動與停止的方法也多種多樣。你可以根據實際情況使用其中的一種。在你安裝、升級或者維護系統時,你可能需要多次啟動和終止伺服器,你需要了解啟動和終止伺服器的方方面面。
3.1.1 直接運行守護程序
1、你可以採用的方法
一般的,你可以有以下幾種選擇啟動MySQL伺服器,它們的功能和用法幾乎是相同的,所以一起在這里介紹:
直接使用MySQL守護程序mysqld啟動資料庫系統,尤其是Win32平台上的分發,這是因為,在Win32平台上沒有mysql.server等伺服器腳本可用。
通過調用safe_mysqld腳本,它接受與mysqld相同的參數,並試圖為mysqld決定正確的選項,然後選擇用那些運行它。
2、腳本或者守護程序的存放位置
對於二進制分發的安裝,mysqld守護程序安裝在MySQL安裝目錄的bin目錄下,或者可在MySQL源代碼分發的libexec目錄下找到,預設為/usr/local/libexec/。對於rpm分發,mysqld應該位於PATH變數決定的程序搜索路徑中,因此可以直接引用。
safe_mysqld仍舊是一個腳本,並且只存在於Unix平台的分發中。safe_mysqld腳本安裝在MySQL安裝目錄的bin目錄下,或可在MySQL源代碼分發的scripts目錄下找到。對於rpm分發,該腳本應該位於PATH變數決定的程序搜索路徑中,因此可以直接引用。
3、為什麼要使用safe_mysqld腳本
safe_mysqld接受和mysqld同樣的參數,並試圖確定伺服器程序和資料庫目錄的位置,然後利用這些位置調用伺服器。safe_mysqld將伺服器的標准錯誤輸出重定向到資料庫目錄中的錯誤文件中,並以記錄的形式存在。啟動伺服器後,safe_mysqld還監控伺服器,並在其死機時重新啟動。safe_mysqld通常用於Unix的BSD風格的版本。
如果,你曾經為root或在系統啟動程序中啟動safe_mysqld,其錯誤日誌將有root擁有。如果再用非特權的用戶身份調用safe_mysqld,則可能引起「Access Denied」(即,「所有權被拒絕」)的錯誤。此時可以刪除錯誤文件在試一次。
由於safe_mysqld腳本的功能,使用safe_mysqld腳本明顯比直接啟動mysqld守護程序來得有效。
4、啟動伺服器的完整過程
對於Unix平台上的分發,如果你以root或在系統引導期間啟動sqfe_mysqld,出錯日誌由root擁有,這可能在你以後試圖用一個非特權用戶調用safe_mysqld時將導致「permission denied」(許可權拒絕)錯誤,刪除出錯日誌再試一下。因此建議你在啟動伺服器前,首先切換到一個專門的用戶mysql。
具體方法如下:
Unix平台
$ su mysql
$ safe_mysql & (或者 mysqld & ,不推薦)
Win32平台
C: mysqlin>mysqld --standalone
或者C: mysqlin>mysqld-nt –standalone
如果你使用mysqld並且沒有把mysql安裝在標準的位置,通常需要提供—basedir選項你的資料庫的安裝位置。
$safe_mysqld --basedir=」/path/to/mysql」 &(Unix平台)
c:mysqlin>mysqld --basedir=」x:/path/to/mysql」 (Win32平台)
5、使用safe_mysqld腳本實現伺服器的自動啟動
同樣你可以利用safe_mysqld和mysqld實現伺服器隨操作系統自動啟動。對於Linux系統以及BSD風格的系統(FreeBSD,OpenBSD等)),通常在/etc目錄下有幾個文件在引導時初始化服務,這些文件通常有以「rc」開頭的名字,且它有可能由一個名為「rc.local」的文件(或類似的東西),特意用於啟動本地安裝的服務。
在這樣的系統上,你可能將類似於下列的行加入rc.local文件中以啟動伺服器(如果safe_mysqld的目錄在你的系統上不同,修改它即可):
if [ -x /usr/local/bin/safe_mysqld ]; then /usr/local/bin/safe_mysqld & fi
由於這樣在引導時啟動,將使用root身份啟動資料庫,在某些時候可能會產生問題和麻煩。這是你可以指定--user選項,因此可以將上面的代碼修改為:
if [ -x /usr/local/bin/safe_mysqld ]; then
/usr/local/bin/safe_mysqld --user=mysql --datadir=/path/to/data &
fi
3.1.2 使用腳本mysql.server啟動關閉資料庫
對於Unix平台上的分發,比較好的辦法是使用資料庫腳本mysql.server,啟動和關閉資料庫。
1、mysql.server腳本的存放位置
mysql.server腳本安裝在MySQL安裝目錄下的share/mysqld目錄下或可以在MySQL源代碼分發的support_files目錄下找到。對於rpm分發,該腳本已經改名mysql位於/etc/rc.d/init.d目錄中,另外在….中存在一個副本mysql.server。下文的討論對RPM分發來說,都在安裝中完成了。如果你想使用它們,你需要將它們拷貝到適當的目錄下。
2、如何使用mysql.server腳本啟動停止伺服器
mysql.server腳本可以被用來啟動或停止伺服器,通過用start或stop參數調用它:
$ mysql.server start
$ mysql.server stop
3、mysql.server的功能簡述
在mysql.server啟動伺服器之前,它把目錄改變到MySQL安裝目錄,然後調用safe_mysqld。如果你有在一個非標準的地點安裝的二進制分發,你可能需要編輯mysql.server。修改它,運行safe_mysqld前,cd到正確的目錄。
4、讓mysql.server以特定的用戶啟動伺服器
如果你想要作為一些特定的用戶運行伺服器,你可以改變mysql_daemon_user=root行使用其他用戶,你也能修改mysql.server把其他選項傳給safe_mysqld。
當然你也可以利用選項文件給mysql.server腳本提供參數。
你也可以在一個全局「/etc/my.cnf」文件中增加mysql.server的選項。一個典型的「/etc/my.cnf」文件可能看起來像這樣:
[mysqld]
datadir=/usr/local/mysql/var
socket=/tmp/mysqld.sock
port=3306
[mysql.server]
user=mysql
basedir=/usr/local/mysql
mysql.server腳本使用下列變數:user、datadir、basedir、bindir和pid-file。
5、利用mysql.server腳本讓伺服器自動啟動
mysql.server腳本的重要性在於你可以使用它配置一個隨操作系統自動啟動的資料庫安裝,這是一個實際的系統中常用的方法。
把mysql.server復制到/etc/rc.d/init.d目錄裡面:
# cd /etc/rc.d/init.d
# cp /usr/local/mysql/support-files/mysql.server mysql
接著把它的屬性改為「x」(executable,可執行)
# chmod +x mysql
最後,運行chkconfig把MySQL添加到你系統的啟動服務組裡面去。
# /sbin/chkconfig --del mysql
# /sbin/chkconfig --add mysql
你也可以這樣做,手工建立鏈接:
#cd /etc/rc.d/rc3.d (根據你的運行級不同而不同,可以是rc5.d)
#ln –s ../init.d/mysql S99mysql
在系統啟動期間,S99mysql腳本利用start參數自動啟動。
3.1.3 使用mysqladmin實用程序關閉、重啟資料庫
日常維護資料庫,經常需要關閉或者重新啟動資料庫伺服器。mysql.server stop只能用於關閉資料庫系統,並不方便,而且mysql.server腳本用特定用戶身份啟動伺服器,因此使用該教本需要超級用戶的許可權。相比之下mysqladmin就方便的多,並且適用於MySQL所有類型、平台的安裝。
關閉資料庫伺服器
mysqladmin shutdown
重啟資料庫伺服器
mysqladmin reload
獲得幫助
mysqladmin –help
mysqladmin實用程序非常有使用價值,仔細閱讀幫助輸出,你會得到更多的用法。
如果出現下面的錯誤:
mysqladmin: connect to server at 』localhost』 failed
error: 』Access denied for user: 』root@localhost』 (Using password: YES)』
表示你需要一個可以正常連接的用戶,請指定-u -p選項,具體方法與3.2節介紹相同,在第七章中你將會學到用戶授權的知識。例如,你現在可以:
shell>mysqladmin -u root -p shutdown
Enter Password:***********
輸入你在閱讀第二章時修改過的密碼即可。
3.1.4 啟動或停止NT平台上的系統服務
上面幾節介紹了Unix平台上使資料庫伺服器自動啟動的方法,而在windows(NT)平台上為了讓MySQL資料庫自動啟動,你需要將MySQL伺服器安裝成NT系統的一種服務。
1、將MySQL安裝成系統服務
對於NT,伺服器名字是mysqld-nt。
C:mysqlin> mysqld-nt --install
(你可以在 NT 上使用mysqld或mysqld-opt伺服器,但是那些不能作為一種服務啟動或使用命名管道。)
2、修改選項文件
如果你的mysql沒有安裝預設的位置c:mysql,那麼因為資料庫將無法確定資料庫目錄的位置,而無法啟動。這種情況下,你需要提供一個全局的選項文件c:my.cnf。將安裝目錄中的my-example.cnf文件拷貝到c盤根目錄下。修改或加入:
[mysqld]
basedir = x:/path/to/mysql/
3、啟動、停止伺服器的方法
你可以用下列命令啟動和停止MySQL服務:
NET START mysql
NET STOP mysql
注意在這種情況下,你不能對mysqld-nt使用任何其他選項!你需要使用選項文件提供參數。可以在選項文件中提供合適的參數。
3.1.5 使用選項文件提供伺服器的參數
本節介紹守護程序需要的比較重要的選項。
對於全局選項文件(windows:c:/my.cnf 或者 unix:/etc/my.cnf),比較重要的選項有:
user 運行守護程序的用戶,如果你使用mysql.server,並且在[mysql.server]中指定了user,那麼這個選項沒有必要。
log-update=file 更新日誌名,對於恢復資料庫有重要意義,資料庫伺服器將生成file.n為名的更新日誌文件。
-l, --log[=file] 指定常規日誌名
--log-bin[=file] 指定使用的二進制日誌文件,應用於伺服器復制。
-Sg, --skip-grant-tables 啟動時不載入授權表,維護時使用。
-u, --user=user_name 啟動伺服器使用的Unix帳戶
--socket=... 指定是用的Unix套接字文件名,在同時運行多個伺服器時使用。
-P, --port=... 指定伺服器使用的埠,在同時運行多個伺服器時使用。
3.1.6 總結
作為MySQL的管理員,你平時的指責就是確保伺服器盡可能的正常運行,使得客戶機能夠正常訪問。本章討論了如何啟動和重啟、關閉伺服器,如果你具備了這個能力,就可以更好的維護伺服器安裝。本章介紹的方法,多數適合於Unix系統,讀者請仔細分辨。
3.2 MySQL與客戶機的連接
本章通過演示如何使用mysql客戶程序與資料庫伺服器連接。mysql(有時稱為「終端監視器」或只是「監視」)是一個互動式程序,允許你連接一個MySQL伺服器,運行查詢並察看結果。mysql可以用於批模式:你預先把查詢放在一個文件中,然後告訴mysql執行文件的內容。使用mysql的兩個方法都在這里涉及。
為了看清由mysql提供的一個選擇項目表了,用--help選項調用它:
shell> mysql --help
本章假定mysql已經被安裝在你的機器上,並且有一個MySQL伺服器你可以連接。如果這不是真的,聯絡你的MySQL管理員。(如果你是管理員,你將需要請教這本手冊的其他章節。)
3.2.1建立和中止與伺服器的連接
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 上可以這樣。
3.2.2利用選項文件簡化連接
在激活 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選項。
3.2.3 利用 mysql 的輸入行編輯器
mysql 具有內建的 GNU Readline 庫,允許對輸入行進行編輯。可以對當前錄入的行進行處理,或調出以前輸入的行並重新執行它們(原樣執行或做進一步的修改後執行)。在錄入一行並發現錯誤時,這是非常方便的;您可以在按 Enter 鍵前,在行內退格並進行修正。如果錄入了一個有錯的查詢,那麼可以調用該查詢並對其進行編輯以解決問題,然後再重新提交它。(如果您在一行上鍵入了整個查詢,這是最容易的方法。)
表2-1中列出了一些非常有用的編輯序列,除了此表中給出的以外,還有許多輸入編輯命令。利用網際網路搜索引擎,應該能夠找到 Readline手冊的聯機版本。此手冊也包含在 Readline 分發包中,可在 http://www.gnu. org/ 的 Gnu Web 站點得到。
表2-1 mysql 輸入編輯命令
鍵 序 列 說 明
Up 箭頭,Ctrl-p 調前面的行
Down 箭頭,Ctrl-N 調下一行
Left 箭頭,Ctrl-B 游標左移(向後)
Right 箭頭,Ctrl-F 游標右移(向前)
Escape Ctrl-B 向後移一個詞
Escape Ctrl-F 向前移一個詞
Ctrl-A 將游標移到行頭
Ctrl-E 將游標移到行尾
Ctrl-D 刪除游標下的字元
Delete 刪除游標左邊的字元
Escape D 刪詞
Escape Backspace 刪除游標左邊的詞
Ctrl-K 刪除游標到行尾的所有字元
Ctrl-_ 撤消最後的更改;可以重復
下面的例子描述了輸入編輯的一個簡單的使用。假定用 mysql 輸入了下列查詢:
如果在按 Enter 前,已經注意到將「president」錯拼成了「persident」,則可按左箭頭或 Ctrl-B 多次移動游標到「s」的左邊。然後按 Delete 兩次刪除「er」,鍵入「re」改正錯誤,並按 Enter 發布此查詢。如果沒注意到錯拼就按了 Enter,也不會有問題。在 mysql 顯示了錯誤消息後,按上箭頭或 Ctrl-P 調出該行,然後對其進行編輯。
輸入行編輯在 mysql 的 Windows 版中不起作用,但是可從 MySQL Web 站點取得免費的 cygwin_32 客戶機分發包。在該分發包中的mysqlc 程序與 mysql 一樣,但它支持輸入行編輯命令。
3.2.4 批處理模式連接
在前面的章節中,你互動式地使用mysql輸入查詢並且查看結果。你也可以以批模式運行mysql。為了做到這些,把你想要運行的命令放在一個文件中,然後告訴mysql從文件讀取它的輸入:
shell> mysql < batch-file
如果你需要在命令行上指定連接參數,命令可能看起來像這樣:
shell> mysql -h host -u user -p < batch-file
Enter password: ********
當你這樣使用mysql時,你正在創建一個腳本文件,然後執行腳本。
為什麼要使用一個腳本?有很多原因:
如果你重復地運行查詢(比如說,每天或每周),把它做成一個腳本使得你在每次執行它時避免重新鍵入。
你能通過拷貝並編輯腳本文件從類似的現有的查詢生成一個新查詢。
當你正在開發查詢時,批模式也是很有用的,特別對多行命令或多行語句序列。如果你犯了一個錯誤,你不必重新打入所有一切,只要編輯你的腳本來改正錯誤,然後告訴mysql再次執行它。
如果你有一個產生很多輸出的查詢,你可以通過一個分頁器而不是盯著它翻屏到你屏幕的頂端來運行輸出:
$ mysql < batch-file | more
你能捕捉輸出到一個文件中進行更一步的處理:
shell> mysql < batch-file > mysql.out
你可以散發腳本給另外的人,因此他們也能運行命令。
一些情況不允許交互地使用,例如, 當你從一個cron任務中運行查詢時。在這種情況下,你必須使用批模式。
當你以批模式運行mysql時,比起你交互地使用它時,其預設輸出格式是不同的(更簡明些)。例如,當互動式運行SELECT DISTINCT species FROM pet時,輸出看起來像這樣:
+---------+
| species |
+---------+
| bird |
| cat |
| dog |
| hamster |
| snake |
+---------+
但是當以批模式運行時,像這樣:
species
bird
cat
dog
hamster
snake
如果你想要在批模式中得到交互的輸出格式,使用mysql -t。為了回顯以輸出被執行的命令,使用mysql -vvv。
3.2.5 總結
本章中列舉了客戶機與伺服器連接的幾種情況,讀者需要注意的是下面幾點:
1、 如何提供參數,以及參數的意義
2、 如何讓客戶機提示輸入密碼
3、 交互模式和批處理模式
4、 mysql客戶機的行編輯功能
3.3 有關資料庫的操作
從本節開始正式介紹各種SQL語句。本節介紹有關資料庫級的SQL以及相關操作,查看、建立和刪除等操作。
3.3.1 用SHOW顯示已有的資料庫
句法:SHOW DATABASES [LIKE wild]
如果使用LIKE wild部分,wild字元串可以是一個使用SQL的「%」和「_」通配符的字元串。
功能:SHOW DATABASES列出在MySQL伺服器主機上的資料庫。
你可以嘗試下面舉例,觀察輸出結果,例如:
mysql>show databases;
+----------+
| Database |
+----------+
| first |
| mysql |
| mytest |
| test |
| test1 |
+----------+
mysql>show databases like 『my%』;
+----------------+
| Database (my%) |
+----------------+
| mysql |
| mytest |
+----------------+
用mysqlshow程序也可以得到已有資料庫列表。
3.3.2 用Create Dabase 創建資料庫
句法:CREATE DATABASE db_name
功能:CREATE DATABASE用給定的名字創建一個資料庫。
如果資料庫已經存在,發生一個錯誤。
在MySQL中的資料庫實現成包含對應資料庫中表的文件的目錄。因為資料庫在初始創建時沒有任何錶,CREATE DATABASE語句只是在MySQL數據目錄下面創建一個目錄。
例如:
mysql>create database myfirst;
然後利用show databases觀察效果。
3.3.3 用DROP DATABASE刪除資料庫
句法:DROP DATABASE [IF EXISTS] db_name
功能:DROP DATABASE刪除資料庫中的所有表和資料庫。要小心地使用這個命令!
DROP DATABASE返回從資料庫目錄被刪除的文件的數目。通常,這3倍於表的數量,因為每張表對應於一個「.MYD」文件、一個「.MYI」文件和一個「.frm」文件。
在MySQL 3.22或以後版本中,你可以使用關鍵詞IF EXISTS阻止一個錯誤的發生,如果資料庫不存在。
3.3.4 使用mysqladmin工具創建和刪除
在命令行環境下可以使用mysqladmin創建和刪除資料庫。
創建資料庫:
shell> mysqladmin create db_name
刪除資料庫:
shell> mysqladmin drop db_name
如果出現下面的錯誤:
mysqladmin: connect to server at 』localhost』 failed
error: 』Access denied for user: 』root@localhost』 (Using password: YES)』
表示你需要一個可以正常連接的用戶,請指定-u -p選項,具體方法與3.2節介紹相同,在第七章中你將會學到用戶授權的知識。
3.3.5 直接在資料庫目錄中創建或刪除
用上述方法創建資料庫,只是MySQL數據目錄下面創建一個與資料庫同名目錄,同樣刪除資料庫是把這個目錄刪除。
所以,你可以直接這么做,創建或刪除資料庫,或者給資料庫更名。這對備份和恢復備份有一定意義。
3.3.6 用USE選用資料庫
句法:USE db_name
USE db_name語句告訴MySQL使用db_name資料庫作為隨後的查詢的預設資料庫。資料庫保持到會話結束,或發出另外一個USE語句:
mysql> USE db1;
mysql> SELECT count(*) FROM mytable; # selects from db1.mytable
mysql> USE db2;
mysql> SELECT count(*) FROM mytable; # selects from db2.mytable
如果你不是用USE語句,那麼上面的例子應該寫成:
mysql> SELECT count(*) FROM db1.mytable;
mysql> SELECT count(*) FROM db2.mytable;
由於use也是一個mysql客戶程序的命令,所以你可以在命令行最後不加分號,客戶程序可以得到結果。
3.3.7 總結
本節介紹了有關資料庫操作的SQL語句、實用程序,其中包括:
SQL語句:CREATE/DROP DATABASE,SHOW DATABASES,USE
程序mysqladmin
直接創建或刪除資料庫的目錄
3.4 有關數據表的操作
用MySQL,目前(版本 3.23)你可以在三種基本資料庫表格式間選擇。當你創建一張表時,你可以告訴MySQL它應該對於表使用哪個表類型。MySQL將總是創建一個.frm文件保存表和列定義。視表類型而定,索引和數據將在其他文件中存儲。
你能用ALTER TABLE語句在不同類型的表之間變換。見7.8 ALTER TABLE語法。
MyISAM
在MySQL 3.23中,MyISAM是預設表格類型,它是基於ISAM代碼並且有很多有用的擴展。索引存儲在一個有.MYI(MYindex)擴展名的文件並且數據存儲在有.MYD(MYData)擴展名的文件中。你能用myisamchk實用程序檢查/修復MyISAM表。