作者: CRYSTAL編譯
在ASP時代,如果我們要建立一個資料庫驅動的web網站,那麼你可以選擇環很多錢的微軟SQL SERVER資料庫或者選擇要花很多時間來尋找達到效能和穩定性統一的ACCESS資料庫,但在.NET時代你有另一種選擇,那就是:MySQL資料庫
什麼是MySQL資料庫?
MySQL資料庫是一種開放原始碼的資料庫,通過獲得授權來保持原始碼的官方支援,同時可以自由修改原始碼,目前許多公司和組織都採用了這種資料庫。對此詳細資料您可以訪問MySQL的官方網站。
第一步 下載和安裝
與大多數軟體一樣,首先是得到並安裝mysql資料庫軟體,獲得Mysql資料庫的方很簡單,在http://dev.mysql.com/downloads/index.html . 上可以自由下載,本文採用的是Mysql4.1,當然讀者也可以下在其他版本,不過我要推薦給讀者的是最好下載先行編譯的二進位的檔案。我的操作平台是Windwos XP,所以我選擇的是包括安裝檔案的Windows版,這個版本大約35M,所以下載的時間不是很長,除非你的網路有問題。
安裝非常簡單,按照安裝步驟不會導致任何問題,如:
MySQL Server安裝 MySQL Server安裝
MySQL Server安裝
MySQL Server安裝
|
,在安裝完成的最後一步,系統會問你是否要配置MySQL伺服器,如果選擇現在配置MySQL伺服器,那麼系統將自動運行MySQL執行個體設定精靈,於是你將進入下一步。
第二步 配置
MySQL伺服器執行個體設定精靈使設定管理員變得非常簡單,按照設定精靈一步一步的走,絕大多數時候都選擇預設配置。
如,讀者可以自行選擇是安裝在專用的資料庫伺服器上或是共用的伺服器,由於我使用的膝上型電腦,所以我選擇是最簡單的"Developer Machine",這個設定不能提供同樣的效能,而且也不能使用很多系統資源
MySQL伺服器設定精靈—選擇資料庫的用途 MySQL伺服器設定精靈—指定TCP/IP和連接埠號碼
|
必須確保響應TCP/IP網路通訊協定,以保證Web頁載需要的時候Web伺服器能串連資料庫;如果你的資料庫和web伺服器安裝在同一台伺服器上,那麼可以禁用這個選項以防止來自網路的訪問。
MySQL伺服器設定精靈—設定預設字串類型
MySQL伺服器設定精靈 MySQL伺服器設定精靈—安裝服務
MySQL伺服器設定精靈—設定SQL串連密碼
MySQL伺服器設定精靈—即將完成配置
|
第三步 MySQL Administrator
也許你認為可以不需要這個東西,但我還是要建議你下載並使用MySQL Administrator,它提供圖形介面以協助你管理MySQL資料庫,Windows使用者可以通過命令提示行運行MySQL Administrator,在餘下時間裡我假定你已經安裝了MySQL Administrator,並且將使用相關圖例。
第四步 建立資料庫
要建立資料庫,我們必須首先串連伺服器。運行MySQL Administrator並登陸伺服器。
運行MySQL Administrator並登陸伺服器 |
選擇MySQL Administrator左側底部的"Catalogs",然後在管理器的右側會出現目前伺服器上已經有的資料庫目錄,右擊Schema視窗的"mysql",選擇"Create New Schema"。
系統將提示你輸入資料庫的名稱,這裡我們使用"mydatabase",在本文以後也將使用這個名稱。
一旦建立後,新資料庫就將與伺服器中的其他資料庫一起出現在Schema視窗,選擇它後,在右側視窗將出現它的詳細資料。
完成新資料庫的建立:
現在這裡面還沒有更多的東西,因為目前資料庫還是空的。下面我們就為資料庫添加點東西。
第五步 建立表
建立表很簡單,只需要點擊"Create Table"按鈕,於是將出現下面的對話方塊:
,我們已經給表取名為"mytable",有四個域,其中id域為自動增量的主鍵、一個整數域、一個文本域和一個時間/日期域。
在完成這些後,點擊"Apply Changes"按鈕,將出現如的視窗,視窗中的是建立表的SQL語句,同時詢問是否執行,當然點擊"Execute"。
到目前為止,我們已經建立了一個包含名為"mytable"的表的名為"mydatabase"的資料庫,下面我們要做的就是為資料庫添加點資料。
第六步 添加資料
在真實情況中,添加資料是通過應用程式來實現的,但現在僅僅是要添加幾個樣本資料,所以我將在MySQL用戶端命令中使用SQL語句的insert語句來實現,如果現在你還在MySQL Administrator中,那麼可以通過菜單"tools"來訪問命令列(Tools -> MySQL Command Line Client),否則可以通過開始菜單的MySQL組來訪問。
圖中的第一行是告訴伺服器我將使用那個資料庫,第二和第三僅僅是簡單的向資料庫插入資料。
現在資料表中有兩個樣本資料,到目前為止,我們的資料庫伺服器已經建立並運行了,裡面有一個資料庫,一個資料表,一些資料。
第七步 建立新的MySQL使用者帳號
要添加使用者帳號需要再一次運行並登陸MySQL Administrator,在MySQL Administrator視窗的左邊選擇"User Administration",同時右邊將顯示伺服器現行帳號的資訊(這裡通常是所謂的root),右擊下面小視窗裡的帳號,選擇"Add new User"。
再次運行MySQL Administrator,並添加一個使用者帳號 |
接下來系統將提示你輸入新使用者的詳細資料,我給新使用者取名為"15secs",口令設定為"password".
完成這些後,點擊"Apply Changes"按鈕以儲存輸入。
第八步 給使用者帳號授權
預設狀況下的新使用者幾乎什麼都做不了,要允許新使用者串連MySQL資料庫必須在"Schema Privileges"中進行授權,這一切將在MySQL Administrator.中的"Schema Privileges"中完成。
注意還沒有為使用者進行任何授權,由於後面的代碼需要查詢資料庫,故需要授予使用者"select"許可權,然後點擊"Apply Changes"按鈕儲存。
進行授權:
也許應用程式需要更多的許可權,如:"INSERT", "UPDATE", 和 "DELETE"等等,你可以用同樣的方法授予給使用者,但要注意的是,許可權越多安全越小,你必須對每個使用者都實行控制。
第九步 ASP.NET頁串連資料庫伺服器
在.NET中串連MySQL資料庫有兩種方法:MySQL Connector/ODBC 和 MySQL Connector/Net,ODBC連接器是符合ODBC標準的互動平台,是.NET訪問MySQL資料庫的最好的選擇。
下載MySQL Connector/Net,然後直接安裝,如:
MySQL Connector/Net安裝圖 MySQL Connector/Net安裝圖
MySQL Connector/Net安裝圖
MySQL Connector/Net安裝圖
|
注意:我選擇了register Connector/NET in the Global Assembly Cache,但我發現它已經被安裝了,但我不能使用import語句,找不到Connector/NET的名稱空間,直到將MySql.Data.dll檔案拷貝到/bin目錄下後才解決這個問題,系統報出的錯誤是:
BC30466: Namespace or type specified in the Imports 'MySql.Data.MySqlClient' cannot be found
我相信這個問題依然存在,只能暫時用手工將檔案從安裝位置拷貝到相應的目錄中,如:C:\Program Files\MySQL\MySQL Connector Net 1.0.4\bin\.NET 1.1\,拷貝到C:\Inetpub\wwwroot\bin\,就可以解決這個問題。
第十步 樣本程式
至此我們的資料庫終於完成,MySQL Connector/Net也安裝成功,我們該做點其他什麼事情了。下面我將提供一段簡單的指令碼,在這段指令碼中,我們將串連和查詢資料庫中的資料,輸入資料不是指令碼的要點。 MySQL.aspx
<%@ Page Language="VB" debug="true" %> <%@ Import Namespace = "System.Data" %> <%@ Import Namespace = "MySql.Data.MySqlClient" %> <script language="VB" runat="server">Sub Page_Load(sender As Object, e As EventArgs) Dim myConnection As MySqlConnection Dim myDataAdapter As MySqlDataAdapter Dim myDataSet As DataSet Dim strSQL As String Dim iRecordCount As Integer myConnection = New MySqlConnection("server=localhost; user id=15secs; password=password; database=mydatabase; pooling=false;") strSQL = "SELECT * FROM mytable;" myDataAdapter = New MySqlDataAdapter(strSQL, myConnection) myDataSet = New Dataset() myDataAdapter.Fill(myDataSet, "mytable") MySQLDataGrid.DataSource = myDataSet MySQLDataGrid.DataBind() End Sub </script> <html> <head> <title>Simple MySQL Database Query</title> </head> <body> <form runat="server"> <asp:DataGrid id="MySQLDataGrid" runat="server" /> </form> </body> </html> |
在上面的指令碼中黑體字部分將隨你採用的平台不同而進行修改,如採用SQL Server應用System.Data.SQLClient來替換MySql.Data.MySqlClient,這隻是一點,更詳細的本文就不討論了。是指令碼運行結果:
結論:
我希望本文能對讀者理解資料庫伺服器有所協助,當你打算從access或SQL Server上升級的時候,MySQL是一個不錯的選擇,儘管它是開放原始碼的,而且還有些缺陷,但它與.NET的結合能做許多工作,另外MySQL Administrator使管理資料庫伺服器不再是管理員的噩夢。