作者: 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服务器,如果选择现在配置MySQL服务器,那么系统将自动运行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并登陆服务器 |
选择MySQL Administrator左侧底部的"Catalogs",然后在管理器的右侧会出现目前服务器上已经有的数据库目录,右击Schema窗口的"mysql",选择"Create New Schema"。
创建一个新的数据库 |
系统将提示你输入数据库的名称,这里我们使用"mydatabase",在本文以后也将使用这个名称。
输入数据库名称 |
一旦创建后,新数据库就将与服务器中的其他数据库一起出现在Schema窗口,选择它后,在右侧窗口将出现它的详细资料。
完成新数据库的创建:
新的数据库创建完成了 |
现在这里面还没有更多的东西,因为目前数据库还是空的。下面我们就为数据库添加点东西。
第五步 创建表
创建表很简单,只需要点击"Create Table"按钮,于是将出现下面的对话框:
创建表 |
如图所示,我们已经给表取名为"mytable",有四个域,其中id域为自动增量的主键、一个整数域、一个文本域和一个时间/日期域。
在完成这些后,点击"Apply Changes"按钮,将出现如下图的窗口,窗口中的是创建表的SQL语句,同时询问是否执行,当然点击"Execute"。
确认并执行表中的SQL语句 |
到目前为止,我们已经创建了一个包含名为"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目录下后才解决这个问题,系统报出的错误是:
<%@ 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> |
脚本运行结果 |
……