我不得不使用傳統的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
%>
是否安裝了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