Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
到MySql的ASP经典连接不工作_Mysql_Asp Classic - Fatal编程技术网

到MySql的ASP经典连接不工作

到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|驱动程序(管理

我被迫移动一个使用经典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"