- ベストアンサー
ASPからMySQLへの接続エラーが発生する
- ASPからMySQLへの接続でエラーが発生しています。エラーコードは'80004005'および'80040e4d'です。
- Microsoft OLE DB Provider for ODBC Driversエラー '80004005'、およびMicrosoft OLE DB Provider for SQL Serverエラー '80040e4d'が表示されます。
- Windows 2003 Serverで動作しているPC環境とMySQL 5.0.18を使用している場合に、ASPからMySQLへの接続でエラーが発生しています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> Access denied for user '=root' ユーザ名を間違えてるようで。「UID==root」じゃなくて、「UID=root」かと。 # って、No.1の補足でもすでに「==」だったのに、気がつかなかった。 ただ、システムDSNに設定したものだけで、ユーザ名やらサーバ名はとくに接続文字列に記述しなくて良かったような。 > Host '*********.*****.local' is not allowed こちらは、MySQL側の設定で拒否されてるのでは。 MySQL.comのマニュアルに対処法が書かれてるみたいです。
その他の回答 (3)
- osamuy
- ベストアンサー率42% (1231/2878)
よくわかんないので、以下のポイントを補足したら、適切な回答がもらえるかも: 1) インストールしたMySQL用ODBCドライバのバージョン。 2) システムDSN作成の際に入力した情報全て(パスワードやIPアドレスは伏字にして)。出来ればスクリーンショットがあれば尚よし。 3) システムDSNの接続テスト(Testボタンがあるはず)の結果。 4) 接続テストを行った際の、MySQL側のログ。 システムDSNの接続テストでうまくいくなら、 db.Open ( "DSN=<システムDSN名>" ) ――で済むはず。逆に接続テストでうまくいかないなら、まずはそれを解決する事が必要かと。
お礼
ご指摘ありがとうございます。 補足のほうにも書きましたが、 一応こちらにも同じことを書いておきます。 1) MySQL ODBC 3.51 Driver 2) Data Source Name:myodbc Server:localhost (テスト成功) User:root Password:***** (MySQLのログインパスワードと同一) Database:db1 (MySQLで作成したDB) 3)テスト結果はSuccessとでます。 4)ただ、ServerをIP指定(***.**.*.***)にするとテストでもエラーになってしまいます。 [MySQL][ODBC 3.51 Driver]Host '*********.*****.local' is not allowed to connect to this MySQL server) ASPのほうのも下のように変えてきましたが、 [MySQL][ODBC 3.51 Driver]Access denied for user '=root'@'localhost' (using password: YES) というエラーが出てしまいます。 Set db=Server.CreateObject("ADODB.Connection") db.Open "dsn=myodbc;Server=localhost; Database=db1; UID==root; PWD=*****;" db.CursorLocation = 3 localhostではなくIP指定にした場合は、 システムDNSと同じエラーになります。
補足
1) MySQL ODBC 3.51 Driver 2) Data Source Name:myodbc Server:localhost (テスト成功) User:root Password:***** (MySQLのログインパスワードと同一) Database:db1 (MySQLで作成したDB) 3)テスト結果はSuccessとでます。 4)ただ、ServerをIP指定(***.**.*.***)にするとテストでもエラーになってしまいます。 [MySQL][ODBC 3.51 Driver]Host '*********.*****.local' is not allowed to connect to this MySQL server) ASPのほうのも下のように変えてきましたが、 [MySQL][ODBC 3.51 Driver]Access denied for user '=root'@'localhost' (using password: YES) というエラーが出てしまいます。 Set db=Server.CreateObject("ADODB.Connection") db.Open "dsn=myodbc;Server=localhost; Database=db1; UID==root; PWD=*****;" db.CursorLocation = 3 localhostではなくIP指定にした場合は、 システムDNSと同じエラーになります。
- osamuy
- ベストアンサー率42% (1231/2878)
> Provider=SQLOLEDB SQL Server用では。 MySQLではなく、Microsoft SQL Serverを利用したほうが手っ取り早いかも。
補足
コメントが反映されてませんでしたので再度投稿します。 MYSQLを使うという前提でやっているので、その他のサーバは利用しない方向で考えています。 Provider=SQLOLEDBをはずしても データソース名および既定のドライバが見つかりません というエラーが出てしまいます。 もうほとんどお手上げ状態です・・・ 1週間考えてるんですがほとんど進まず・・・
- osamuy
- ベストアンサー率42% (1231/2878)
システムDSNが正しく作成されてないのでは。
補足
システムDSNを登録してみましたが、 同じエラーが出ている状態です。 ASPは以下のようにしています。 Set db=Server.CreateObject("ADODB.Connection") db.Open "Provider=SQLOLEDB; Server=***.**.*.***; Database=db1; UID==root; PWD=admin;" (IPアドレスは伏字にしています)
補足
ありがとうございます! >ユーザ名を間違えてるようで。「UID==root」じゃなくて、「UID=root」かと。 単純なミスでしたね・・・ あ、設定しなくても良かったんですか。 ASPページのほうは、エラーはなくなりました! データ抽出はできてないですが(汗) 一歩進むと何か問題が出てきます(汗) > Host '*********.*****.local' is not allowed こちらのほうは上記参考URLをもとに調べてみます。