首先,在系统中安装mysql 的odbc数据库驱动。当前的稳定版本是3.51.下载地址是: http://dev.mysql.com/downloads/connector/odbc/3.51.html 。下载安装好后。在控制面板--管理工具--数据源 (odbc)中的驱动程序页中如果有mysql odbc 3.51 driver就说明驱动已
首先,在系统中安装mysql 的odbc数据库驱动。当前的稳定版本是3.51.下载地址是:http://dev.mysql.com/downloads/connector/odbc/3.51.html。下载安装好后。在控制面板-->管理工具-->数据源 (odbc)中的驱动程序页中如果有mysql odbc 3.51 driver就说明驱动已经安装成功,就可以开始写程序了。
下面是我测试时使用的程序,里面有说明就不再介绍了。
'设置mysql连接属性
'各个变量说明:
' myhost:mysql数据库地址
' mydb:使用的mysql数据库名
' myuid:连接mysql数据库使用的帐号
' mypwd:连接mysql数据使用帐号的密码
' mychareset:客户端使用的编码类型。根据实际情况使用。
' 一般情况下使用gb2312 utf8 gbk这三种编码。如果这三种都测试过仍然有乱码。
' 请检查你的设置。
'数据库设置开始
dim myhost,mydb,myuid,mypwd
myhost = localhost
mydb = knowldge
myuid = root
mypwd = mysqladmin
mychareset = gb2312
strconnection=driver={mysql odbc 3.51 driver};server= & myhost & ;database= & mydb & ;user name= & myuid & ;password= & mypwd
set conn = server.createobject(adodb.connection)
'连接数据库
conn.open strconnection
'设置客户端字符编码
conn.execute(set names ' & mychareset & ')
'数据库设置结束
%>
或:
set conn = server.createobject(adodb.connection)
conn.open driver={mysql odbc 3.51 driver};server=127.0.0.1;database=shops;user=root;password=xxx;
上面是使用adodb的连接方法,在默认3306端口是正常。
但在端口改成3333了,就出错。
server=127.0.0.1:3333; 这样也不对,在php这样是可以用的
server=127.0.0.1,3333; mssql是这样改端口,但在这是错的。
这样可能可以:
conn.open driver={mysql odbc 3.51 driver};server=127.0.0.1;port=3333;database=shops;user=root;password=xxx;
-------------------------------------------------------------------------------------------------------------------------------------------------
一般情况下,使用asp的时候很少会用到mysql数据库,但有的时候就必须连接mysql,比如kaoyan.com因为论坛使用的是mysql的数据库,而其他一些频道是基于asp建立,所以涉及用户身份验证的时候,就经常需要用到asp来连接mysql。
1、asp连接mysql的基本方式
一般都是用myodbc来连接。首先需要安装myodbc,可以到http://www.mysql.com/下载。
安装好myodbc之后,可以直接在asp代码里面通过以下语句来连接mysql数据库:
strconnection=”driver={mysql odbc 3.51 driver};
database=dbname;server=localhost;uid=dbuser;password=dbpwd”
‘database:数据库名
’server:服务器名/ip
‘uid:用户名
‘password:密码
set con = server.createobject(”adodb.connection”)
con.open strconnection
另外还可以先在odbc数据源里新建一个系统dsn,选择 mysql odbc 3.51 driver作为数据源,填入相关的用户名和密码并测试之。相关的asp连接代码如下:
strconnection=”dsn=dbdsn;driver={mysql odbc 3.51 driver};uid=dbuser;password=dbpwd”
‘dsn:新建的dsn名称
‘uid:用户名
‘password:密码
set con = server.createobject(”adodb.connection”)
con.open strconnection
2、需要注意的问题(mysql4.1及以上版本)
mysql4.1及以上版本对字符集的限定跟之前的版本有很大不同,在进行数据库查询的时候如果不对字符集加以设定,一旦有查询的字段有中文,便很可能出现下面这样的错误:
microsoft ole db provider for odbc drivers 错误 ‘80040e31′
[mysql][odbc 3.51 driver][mysqld-4.1.18]illegal mix of collations (gbk_chinese_ci,implicit) and (latin1_swedish_ci,coercible) for operation ‘=’
这个时候就需要对asp的查询语句进行一些修改,增加有关的字符集的设定:
“select email from members where username=_gbk ‘”&username&”‘ collate gbk_chinese_ci“---------------------------------------------------------------------------------------------------------------------------------------------
、到mysql网站:http://dev.mysql.com/downloads/下载mysql odbc 3.51 driver安装
2、使用如下代码链接
conn.open driver={mysql odbc 3.51 driver};server= & strip & ;database= & strdbname & ;user= &
strusername & ;password= & strpass & ;option=3;
如果myodbc版本不同,请自行修改driver中的字符串
<%
strconnection=dsn=mysqltest;
driver={mysql odbc 3.51 driver};
server=填入服务器地址;uid=用户名;pwd=密码;database=mm
‘连接字符串,dsn就是我们设置的数据源标识符
注意driver我们刚才在设置系统dsn的时候提过。
set conn = server.createobject(adodb.connection)
conn.open strconnection
sql = select * from my ‘sql查询语句
set rs = conn.execute(sql)
if not rs.bof then
%>