follow my heart...
分类: Mysql/postgreSQL
2006-08-01 13:39:58
在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服务器实例配置向导使配置服务器变得非常简单,按照配置向导一步一步的走,绝大多数时候都选择缺省配置。
MySQL服务器配置向导 MySQL服务器配置向导 |
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> |
脚本运行结果 |