与MySql无法正常工作的ASP经典连接
我不得不使用传统的ASP(VBScript)和MS访问数据库在远程Windows服务器上移动一直运行良好的旧网站。与MySql无法正常工作的ASP经典连接
新托管公司(123-reg)在其Windows服务器上不支持MS Access,因此我现在使用MySQL。我在其他网站上成功地使用了MySQL,但总是使用PHP而不是传统的ASP,所以我从来没有从ASP连接过MySQL数据库。
该网站有数百页,我希望我所要做的就是改变连接字符串。但是我现在得到一个500错误
80004005 | [微软] ODBC_Driver_Manager] _Data_source_name_not_found_and_no_default_driver_specified
已经难倒我。
我已经试过
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"
和阅读this previous answer到类似queation后:
conn.open "DRIVER={MySQL ODBC 5.1 Driver}; SERVER=" & servername & "; DATABASE=" & database & "; UID=" & username & ";PASSWORD=" & pword & "; OPTION=3;charset=utf8;"
,仍然得到同样的错误。
我找到了互联网和这个网站,但每当我找到信息,它就假定我使用我自己的服务器,而我并不知道。页面:https://support.microsoft.com/en-gb/kb/306345建议我对服务器注册表进行更改,当然这是我无法做到的,无论如何,我很难接受像123-reg这样大的公司必须在其服务器上更改内容让我连接到数据库。
因此,我得出结论,我有我的连接编码有问题(可能是简单的)。
我确实提出了123-reg的门票,但他们告诉我这是一个编码问题,他们没有帮助,这加强了我的理论。
我会对这方面的任何帮助深表感谢。我打算现在用PHP重写网站,并且我知道我可以很好地完成这项工作,但由于有数百页的代码需要花费我几个月的时间,我正在寻找一个快速修复的网站再次使用当前页面,同时使用PHP重新编写整个站点。
非常感谢
火车
更新:1月11日 123-REG已经回来对我说的ODBC的版本是5.1.8。我已经改变了连接字符串,但仍然获得了500错误,存在:
HTTP/1.1 500内部服务器错误的Cache-Control:私人 的Content-Length:250 Content-Type的:text/html的服务器:Microsoft- IIS/7.5 Set-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
%>
如果你的主机是64箱,同时尝试x64 connection strings与Provider=MSDASQL
和MySQL ODBC 5.2w Driver
(不知道你是否768,16提到“ 8.“在”5.1.8“中 - ”5.1“或”5.2w“应该没问题)。如果它不起作用 - 请检查123-reg是否为数据库提供DSN(您使用无DSN连接)或尝试连接数据库的IP。
是的,我在设置MySQL数据库时测试了一个PHP连接,它工作正常。这个问题似乎与MySQL ODBC版本有关。 :-) –
是否安装了MySql ODBC 3.51驱动程序?你可以[在这里下载](https://dev.mysql.com/downloads/connector/odbc/3.51.html)。你想要的连接字符串是:'Driver = {MySQL ODBC 3.51 Driver}; Server = myServerAddress; Database = myDataBase; User = myUsername; Password = myPassword; Option = 3;'(取自https://www.connectionstrings.com/mysql-connector-odbc-3-51/) –
@Lynn谢谢,但我没有由于该网站由123-reg远程托管,所以可以安装驱动程序。我已经尝试过你建议的连接字符串(见上面),但它不起作用。 –
仅仅因为123-reg的支持人员说它是一个编码问题并不意味着它是一个编码问题。 :/你能问他们是否安装了MySQL ODBC 3.51驱动程序? – Martha