こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ASPからMySQLへの接続

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_03.htm等を参考につくってみたのですが、

Microsoft OLE DB Provider for ODBC Drivers エラー '80004005'
[Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバが見つかりません。



Microsoft OLE DB Provider for SQL Server エラー '80040e4d'

接続文字列の属性が正しくありません。

のエラーが出てしまいます。

PC環境はWindows2003server、mysql5.0.18です。

投稿日時 - 2006-03-14 10:33:25

QNo.2027988

すぐに回答ほしいです

質問者が選んだベストアンサー

> Access denied for user '=root'

ユーザ名を間違えてるようで。「UID==root」じゃなくて、「UID=root」かと。
# って、No.1の補足でもすでに「==」だったのに、気がつかなかった。

ただ、システムDSNに設定したものだけで、ユーザ名やらサーバ名はとくに接続文字列に記述しなくて良かったような。

> Host '*********.*****.local' is not allowed

こちらは、MySQL側の設定で拒否されてるのでは。
MySQL.comのマニュアルに対処法が書かれてるみたいです。

参考URL:http://dev.mysql.com/doc/refman/4.1/ja/access-denied.html

投稿日時 - 2006-03-14 18:20:06

補足

ありがとうございます!

>ユーザ名を間違えてるようで。「UID==root」じゃなくて、「UID=root」かと。

単純なミスでしたね・・・
あ、設定しなくても良かったんですか。
ASPページのほうは、エラーはなくなりました!
データ抽出はできてないですが(汗)
一歩進むと何か問題が出てきます(汗)


> Host '*********.*****.local' is not allowed
こちらのほうは上記参考URLをもとに調べてみます。

投稿日時 - 2006-03-14 18:42:15

ANo.4

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

よくわかんないので、以下のポイントを補足したら、適切な回答がもらえるかも:

1) インストールしたMySQL用ODBCドライバのバージョン。
2) システムDSN作成の際に入力した情報全て(パスワードやIPアドレスは伏字にして)。出来ればスクリーンショットがあれば尚よし。
3) システムDSNの接続テスト(Testボタンがあるはず)の結果。
4) 接続テストを行った際の、MySQL側のログ。

システムDSNの接続テストでうまくいくなら、
db.Open ( "DSN=<システムDSN名>" )
――で済むはず。逆に接続テストでうまくいかないなら、まずはそれを解決する事が必要かと。

投稿日時 - 2006-03-14 16:29:53

補足

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と同じエラーになります。

投稿日時 - 2006-03-14 17:08:27

お礼

ご指摘ありがとうございます。

補足のほうにも書きましたが、
一応こちらにも同じことを書いておきます。

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と同じエラーになります。

投稿日時 - 2006-03-14 17:35:54

ANo.2

> Provider=SQLOLEDB

SQL Server用では。
MySQLではなく、Microsoft SQL Serverを利用したほうが手っ取り早いかも。

参考URL:http://www.microsoft.com/japan/sql/editions/express/default.mspx

投稿日時 - 2006-03-14 14:07:36

補足

コメントが反映されてませんでしたので再度投稿します。

MYSQLを使うという前提でやっているので、その他のサーバは利用しない方向で考えています。

Provider=SQLOLEDBをはずしても
データソース名および既定のドライバが見つかりません
というエラーが出てしまいます。

もうほとんどお手上げ状態です・・・
1週間考えてるんですがほとんど進まず・・・

投稿日時 - 2006-03-14 15:30:09

ANo.1

システムDSNが正しく作成されてないのでは。

参考URL:http://www.tryhp.net/ODBCMySQL.htm

投稿日時 - 2006-03-14 11:08:00

補足

システムDSNを登録してみましたが、
同じエラーが出ている状態です。

ASPは以下のようにしています。
Set db=Server.CreateObject("ADODB.Connection")
db.Open "Provider=SQLOLEDB; Server=***.**.*.***; Database=db1; UID==root; PWD=admin;"

(IPアドレスは伏字にしています)

投稿日時 - 2006-03-14 11:10:15

あなたにオススメの質問