我正在尝试将我的经典ASP网站连接到MySQL数据库。我使用以下内容:
1. OS: Windows 8.1 Pro 64 bit
2. DB: MySQL 5.6.14 64 bit
3. ODBC Driver: MySQL ODBC 5.2 ANSI Driver
4. IIS: IIS 8
这是我到目前为止所做的事情。
我从MySQL网站下载了MySQL 5.6.14 64位数据库并成功安装。数据库工作正常,因为我能够创建表,存储过程等。
接下来,我在wwwroot文件夹中创建了一个文件夹(mira_dev)并编写了3个经典的asp页面。第一个是login.asp页面,第二个是checklogin.asp页面,最后一个是index.asp页面。
现在我能看到“它有效!”在我的浏览器中。
我接下来在ODBC数据源管理器(64位)中创建了一个系统DSN。我把它命名为MySQL 64位,TCP / IP服务器命名为127.0.0.1,端口命名为3306,然后用户名为root,密码为root。我测试了连接,并说“连接成功”。
我使用的连接字符串是:
strconnect = ("Driver={MySQL ODBC 5.2 ANSI Driver};Server=localhost; Port:4040;Database=mira_dev;User=root;Password=root;Option=4;")
我接下来在浏览器上输入登录页面的路径,登录页面显示正常。
我按预期输入用户名和密码,然后按Enter键。预期的结果是,在我输入后,它应该通过不可见的页面checklogin验证我,然后如果它与数据库匹配,它应该将我传递给index.asp。
现在抓住了。如果我在Chrome / Firefox中执行此操作,则会将我带到index.asp,但不会显示正确的内容,而是显示错误消息:“处理URL时服务器上发生错误。请与系统管理员联系。 如果您是系统管理员,请单击此处以了解有关此错误的更多信息。“点击此处”将带我进入一个页面,告诉我如何使用mysql配置经典asp。我已经做了所有这些,我想我在正确的道路却遗漏了一些非常愚蠢的东西。
但是如果我在IE 11中执行相同的步骤,那么它会在checklogin.asp中阻止我,并告诉我存在服务器错误。我确信checklogin中用于身份验证的逻辑很好,因为它可以在我的其他计算机上运行,但我不确定我缺少什么。
如果你们帮助我,那将是非常有帮助的。非常感谢提前! :)
答案 0 :(得分:0)
1)为什么在连接字符串中使用端口4040而不是(默认)端口3306?特别是在命名的ODBC数据源中使用3306时。这看起来是导致服务器错误的最可能原因
2)您也可以尝试将“Server = localhost”替换为“Server = 127.0.0.1”。要么应该在标准Windows框上工作,要知道DSN连接中的参数是否有效,请复制它们
3)另请尝试“Driver = {MySQL ODBC 5.2w Driver}” - 请参阅此页http://www.connectionstrings.com/mysql-connector-odbc-5-1/
除非您禁用该功能http://msdn.microsoft.com/en-us/library/ms241741(v=vs.110).aspx
,否则IE始终会向您提供自己的错误消息