到MySql的ASP经典连接不工作
我被迫移动一个使用经典ASP(VBScript)和MS access数据库在远程windows服务器上运行多年的旧网站 新的托管公司(123 reg)不支持Windows服务器上的MS Access,因此我现在使用MySQL。我在其他网站上成功地使用了MySQL,但总是使用PHP而不是经典的ASP,所以我以前从未从ASP连接到MySQL数据库 该网站有数百个页面,我希望我所要做的就是更改连接字符串。然而,我现在得到一个500错误 80004005 |[Microsoft]ODBC|驱动程序(管理器)](数据)源(名称)未找到(未找到)和(未指定)默认(驱动程序) 这让我很困惑 我试过了到MySql的ASP经典连接不工作,mysql,asp-classic,Mysql,Asp Classic,我被迫移动一个使用经典ASP(VBScript)和MS access数据库在远程windows服务器上运行多年的旧网站 新的托管公司(123 reg)不支持Windows服务器上的MS Access,因此我现在使用MySQL。我在其他网站上成功地使用了MySQL,但总是使用PHP而不是经典的ASP,所以我以前从未从ASP连接到MySQL数据库 该网站有数百个页面,我希望我所要做的就是更改连接字符串。然而,我现在得到一个500错误 80004005 |[Microsoft]ODBC|驱动程序(管理
set Conn=server.createobject("ADODB.CONNECTION")
set rs = server.createobject("ADODB.Recordset")
conn.open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=" & servername & "; DATABASE=" & database & "; UID=" & username & ";PASSWORD=" & pword & "; OPTION=3;"
我也尝试过:
conn.open "DRIVER={SQL Server};SERVER=" & servername & "\SQLEXPRESS;DATABASE=" & database & ";UID=" & username & ";PWD=" & pword"
在阅读了类似的问题后:
conn.open "DRIVER={MySQL ODBC 5.1 Driver}; SERVER=" & servername & "; DATABASE=" & database & "; UID=" & username & ";PASSWORD=" & pword & "; OPTION=3;charset=utf8;"
但仍然会得到相同的错误
我搜索过互联网和这个网站,但每当我找到信息时,它都认为我在使用自己的服务器,而我不是。位于:的页面建议我对服务器注册表进行更改,这当然是我无法做到的,而且在任何情况下,我都很难接受像123 reg这样大的公司必须更改其服务器上的内容以允许我连接到数据库
因此,我得出结论,我的连接编码有一些错误(可能很简单)
我确实提出了123注册的罚单,但他们告诉我这是一个编码问题,他们没有帮助,这加强了我的理论
我将非常感谢在这方面的任何帮助。我现在确实计划用PHP重新编写该网站,我知道我可以让它很好地工作,但由于有数百个页面需要编写代码,这将花费我几个月的时间,我正在寻找一个快速修复方法,在我用PHP重新编写整个网站的同时,使用当前页面重新启动该网站
非常感谢
托格
更新:1月11日
123 reg告诉我ODBC版本是5.1.8。我已经更改了连接字符串,但仍然得到一个500错误,即:
HTTP/1.1 500内部服务器错误缓存控制:专用
内容长度:250内容类型:文本/html服务器:Microsoft IIS/7.5
设置Cookie:ASPSESSIONIDCCQSTSCA=FLAJJCCDFENAOEMMCGFGNPCF;路径=/
X-Powered-By:ASP.NET日期:2017年1月11日星期三14:46:07 GMT连接:
关闭处理URL时服务器上发生错误
没有行号,也没有错误描述
我已经编写了一个简单的页面来测试连接,我的完整代码是:
<%@ Language=VBScript %>
<%
option explicit
Response.Buffer = true
'=============================
'database connection variables
dim servername, username, pword, database
servername = "cust-mysql-123-19" 'The name of the Server
username = "atourist" 'The username for the database
pword = "redacted for this post" 'The password for the database
database = "atourist" 'The database to use
'============================
dim rs
dim strSQL
dim conn
dim ds
dim county
dim numrec
county="Grampian"
%>
<html>
<head>
<title>Test Page</title>]
</head>
<body>
<%
' connect to database and retrieve recordset
set conn=server.createobject("ADODB.CONNECTION")
set rs = server.createobject("ADODB.Recordset")
strSQL = "select * from ukgh where county='" & county & "' ORDER by random ASC"
conn.open "DRIVER={MySQL ODBC 5.1.8. Driver}; SERVER=" & servername & "; DATABASE=" & database & "; UID=" & username & ";PASSWORD=" & pword & "; OPTION=3;"
set rs = conn.Execute(strSQL)
'===============================
ds=rs.GetRows()
rs.close
conn.close
set rs = nothing
set conn = nothing
'display records
for Numrec =LBound(ds, 2) To UBound(ds, 2)
response.write DS(1, numrec) & ", " & DS(2, numrec) & "<br />"
Next
%>
</body>
</html>
<%
response.end
%>
如果您的主机是x64机箱,请使用
Provider=MSDASQL
和MySQL ODBC 5.2w驱动程序进行尝试(不确定是否应该在“5.1.8”中提及“8”。-“5.1”或“5.2w”应该可以)。如果没有帮助-请检查123 reg是否为数据库提供DSN(您使用的是无DSN连接)或尝试连接数据库的IP
为了确保这是一个asp问题,请尝试从测试php脚本(例如,)进行连接。我只在连接字符串5.3中添加了Unicode驱动程序,问题得到了解决
更改此项:
Conn.Open "DRIVER={MySQL ODBC 5.3 };SERVER=localhost; DATABASE=psa; UID=admin;PASSWORD=mypassword;Port=8306; OPTION=3"
致:
致以最诚挚的问候几点。首先,如果您的数据库是MySQL,那么(显然)您需要一个MySQL ODBC conn字符串——忘记SQL Server字符串吧。现在安装5.1版的可能性比安装3.51版的可能性更大,但如果安装了其中任何一个版本,请咨询技术支持部门可能是值得的。这是一个有用的资源。其次,默认情况下,Jet(Access)OLEDB驱动程序仍然安装在Windows服务器上,因此,即使他们说它不受支持,也可能值得上载现有的Access数据库,看看它是否有效。如果在Windows上安装MySQL,ODBC驱动程序将随附。5.3版似乎是当前版本,值得一提的是,这是在我的笔记本电脑上工作的conn字符串Provider=MSDASQL;驱动程序={MySQL ODBC 5.3 UNICODE驱动程序};服务器=本地主机;数据库=mydatabase;User=myuserid;密码=我的密码;选项=3代码>@John。我真的很感谢你的帮助。123 reg已回复ODBC版本。我在我的原始帖子的底部添加了信息和完整的代码:-)如果除去SQL语句的连接和执行之外的所有内容,会发生什么?您确定连接字符串的ODBC驱动程序部分有尾随句点吗?我看到的所有其他示例都是5.1或3.51,没有尾随周期。真是妙极了!将驱动程序语法更改为5.1而不使用尾随句点是可行的。几天的挫折结束了。现在我可以开始用PHP重新编写整个站点了。非常感谢大家的时间和帮助:-)是的,我在设置MySQL数据库时测试了一个PHP连接,效果很好。问题似乎出在MySQL ODBC版本上。:-)
Conn.Open "DRIVER={MySQL ODBC 5.3 **Unicode Driver**};SERVER=localhost; DATABASE=psa; UID=admin;PASSWORD=mypassword;Port=8306; OPTION=3"