2017-01-09 18 views
3

従来のASP(VBScript)およびMSアクセスデータベースを使用してリモートのWindowsサーバーで長年実行されていた古いWebサイトを移動することを余儀なくされました。MySqlへのASPクラシック接続が動作しない

新しいホスティング会社(123-reg)は、Windowsサーバー上でMS Accessをサポートしていないため、現在はMySQLを使用しています。私はMySQLを他のサイトでも使用してきましたが、従来のASPではなく常にPHPを使用していましたので、ASPからMySQLデータベースに接続したことはありません。

ウェブサイトには何百ものページがあり、私がしなければならないことは接続文字列を変更することだけだったと思っていました。 [Microsoft]のODBC_Driver_Manager]私を困惑させた

を_Data_source_name_not_found_and_no_default_driver_specified |しかし、私は今、500エラー

80004005を取得します。

私は、私も試してみました

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" 

と同様のqueationにthis previous answerを読んだ後:

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レグでチケットを発行しましたが、それはコーディングの問題であり、私の理論を補強するものではありません。

私はこのことに関する助けに深く感謝しています。私は今、PHPでサイトを書き直す計画をしています。私はその作業をうまくやることができることを知っていますが、コードするページが何百もあるので、数ヶ月かかるでしょう。私はPHPでサイト全体を書き直しながら、現在のページを再び使用しています。

多くのおかげで

TOG

更新: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 セットクッキー: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 
    %> 
+0

MySql ODBC 3.51ドライバはインストールされていますか? [こちらからダウンロードできます](https://dev.mysql.com/downloads/connector/odbc/3.51.html)。必要な接続文字列は次のとおりです。 'Driver = {MySQL ODBC 3.51ドライバ}; Server = myServerAddress; Database = myDataBase; ユーザー= myUsername;パスワード= myPassword;オプション= 3; '(https://www.connectionstrings.com/mysql-connector-odbc-3-51/から) –

+0

@Lynnありがとうございます。サイトが123-regによってリモートでホストされるため、ドライバをインストールするための機能私はすでにあなたが提案した接続文字列を試しましたが(上記参照)、動作しません。 –

+0

123-regのサポート担当者がコーディングの問題であると言っているだけで、コーディングの問題ではありません。 :/あなたはMySQLのODBC 3.51ドライバがインストールされているかどうか尋ねることができますか? – Martha

答えて

1

ホストがx64のボックスである場合には、「(あなたがshoudもしわからない言及Provider=MSDASQLMySQL ODBC 5.2w Driverとの両方x64 connection stringsを試してみてください「5.1.8。」 - 「5.1」または「5.2w」は問題ありません)。それが助けにならないなら - 123-regが(DSNのない接続を使用する)データベースのDSNを提供するかどうかをチェックするか、データベースのIPに接続しようとします。

これがaspの問題であることを確認するには、テストPHPスクリプト(例[1][2])から接続してみてください。

+0

はい、私はMySQLデータベースをセットアップするときにPHP接続をテストしましたが、正常に動作しました。この問題は、MySQL ODBCバージョンにあったようです。 :-) –

関連する問題