• 締切済み

MySQLにADOを使用して接続できません

MySQL Server 4.1.8-nt サーバーWindows2000 Professional クライアントWindowsXP Professional LANの環境で使用しています。 クライアントにODBCドライバ3.51をインストールし、ODBCのシステムデータソースに登録。 testをクリックすると Success; connection was made! と表示されます。 また、サーバー側にインストールされたMySQLクライアントで、 データベースの作成など普通に操作できます。 ところが、VBで作成中のプログラムからADOを使用して、データベースを開こうとすると、 「致命的なエラーです」というメッセージが出て、接続できません。 Cnn.open "Driver={MySQL ODBC 3.51 DRIVER};" _ & " SERVER=サバーIPアドレス;" _ & " DATABASE=データベース名;" _ & " USER=root;" _ & " PASSWORD=rootのパスワード;" サーバーの設定が間違っているのでしょうか? それとも、ADOの接続文字列の記述に問題があるのでしょうか? Driver のかわりに、Provider=MSDASQL としてもダメでした。

  • MySQL
  • 回答数2
  • ありがとう数13

みんなの回答

回答No.2

こんばんは。 >>ただDriver={MySQL ODBC 3.51 Driver}の場合はDNS=データソース名だと、致命的なエラーがでます。この場合Database=データベース名だと開けます。 書き方です・・・。 >>逆にProvider=MSDASQLの場合はDatabase=データベース名だと致命的なエラーが出て、DNS=データソース名だと開けます。 そういう決まりなので・・・。 >>これが、家の環境(質問の最初に書いた環境)だと、どちらでも致命的なエラーになってしまいます。 これについては、確かにおかしいですね。 原因を特定するには、情報が少ないです・・・。 (^^ゞ

回答No.1

こんにちは。 MySQL接続をDNS登録して、 Cnn.open "dsn=○○;uid=ユーザーのID~ (○○の部分は、DSNの登録名) としてもダメですか? (^^ゞ

guerlain
質問者

お礼

taka451213さん、どもありがとうございます。 実は先に会社の自分のPC(Windows2000 Professional)にMySQl4.1.8をインストールして作業していたんですが、会社では普通に出来ます。 もちろんDNSに登録してあります。 ただDriver={MySQL ODBC 3.51 Driver}の場合はDNS=データソース名だと、致命的なエラーがでます。 この場合Database=データベース名だと開けます。 逆にProvider=MSDASQLの場合はDatabase=データベース名だと致命的なエラーが出て、DNS=データソース名だと開けます。 これが、家の環境(質問の最初に書いた環境)だと、どちらでも致命的なエラーになってしまいます。なぜなんでしょう?

関連するQ&A

  • mysql 4.1.2とODBCドライバ

    Windows2000にmysql4.1.2をインストールしました。 このPCにODBCドライバ(MySQL ODBC 3.51 Driver)を インストールしました。  このODBCドライバでは、外部の3.58などのMySQLサーバ には問題なく接続できますが、ローカルのMySQL4.1サーバ に接続しようとした場合だけ、以下のエラーになります。 [MySQL][ODBC 3.51Driver]Client does not support authentication protocol requested by server; consider upgrading MySQL client MySQLサーバ、ODBCとも最新なので、これ以上はアップ グレードできないと思うのですが・・ODBCドライバや MySQLサーバの設定にも認証関係はありませんので、 困っています。 アドバイスなどいただけたら幸いです。

  • 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です。

  • ODBCからMySQLに接続できません

    お世話になります。 Access2003のテーブルをODBCからMySQLに作ろうと思っています。 ODBCをインストールして各項目を入力して、”Test Data Source”をクリックしたところ、下記のエラーが出ました。 MySQL ODBC 3.51 Driver Access denied user:'abc@54-65-15-54eonet.ne.jp!(Using password:YES) abcはユーザ名かデータベース名(ユーザ名とデータベース名は同じです。) (同じエラーの記事がありました。) http://vine-linux.ddo.jp/bbs/read.php?FID=11&TID=162 アクセス権については、接続先はレンタルサーバーですので、誰でもアクセスできるように設定してもらいました。 しかし、同じエラーが出ました。 何度もチェックしてもらいましたが、サーバー側に問題はないようです。 ODBCの設定は下記のとおりにしました。 PHP4: 4.3.11 MySQL: 4.0.20 http://tsuttayo.sytes.net/mysql/install/odbc/10/10/20/10/install.php 解決策をご教授いただければ幸いです。よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • エクセルからMySQL

    すみません、エクセルからMySQLのテーブル作成をしたいのですが、うまくいきません。 --------------------------------------------------------- Sub aaa() Dim cat As ADOX.Catalog Dim tbl As ADOX.Table Dim cnn As New ADODB.Connection Set cat = New ADOX.Catalog cat.ActiveConnection = "provider = MSDASQL.1;data source=test;" cnn.Open "Provider=MSDASQL.1;Data Source=test;" Set tbl = New ADOX.Table tbl.Name = "aaa" Set tbl.ParentCatalog = cat With tbl .Columns.Append "ID", 4 .Columns.Append "名前", 4 End With End Sub ----------------------------------------------------------- エクセルからACCESSへの接続の参考ホームページを見ながらやっているので、MySQLの場合これであっているのか分からないです。実行してもエラーがでないのですが、確認してみるとテーブルが作成されていないです。どなたか分かる方教えてください。お願いします。 上のコードは、MySQLの【test】というデータベースに【aaa】というテーブルを作成するというつもりで書いているのですが、間違っていますでしょうか?

  • DB接続ができなくなって困っています!

    いつも参考にさせていただいております。 今回、自宅のPCに構築した開発環境のDBに、急に接続できなくなりました。 ==================================== 【開発環境】※ASP環境 OS :windows 8 IIS:8.0 DB :(1)MySQL 5.5.32   ※「mysql-connector-odbc-5.2.5」もインストール済。  (2)Access2013 ==================================== 先日まで、問題なくDBに接続できていましたが、寝ぼけて何かの設定を変えてしまいました。 ※恥ずかしながら、気づいたら設定変更後で何の設定を変えたのか不明です。。。 すると、今まで正常に接続できていたMySQLとAccessが、以下のエラーで接続できなくなりました。 ==================================== 【MySQL接続】 Microsoft OLE DB Provider for ODBC Drivers エラー '80004005' [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバーが見つかりません。 【Access接続】 Microsoft OLE DB Provider for ODBC Drivers エラー '80004005' [Microsoft][ODBC Driver Manager] 指定された DSN には、ドライバーとアプリケーションとのアーキテクチャの不一致が含まれています ==================================== なお、接続箇所のロジックは以下となります。 ==================================== 【MySQL接続】 Set oCn = Server.CreateObject("ADODB.Connection") oCn.Open UDL_FILE(※1), "", "" ※1 上記「UDL_FILE」は、以下の内容を設定しているUDLファイルを読み込んでいます。 ------------------------ [oledb] ; Everything after this line is an OLE DB initstring PROVIDER=MSDASQL;DRIVER={MySQL ODBC 5.2 Unicode Driver};SERVER=localhost;USER=hogeU;PASSWORD=hogeP;DATABASE=hoge; ------------------------ 【Access接続】 Set poCnMdb = Server.CreateObject("ADODB.Connection") poCnMdb.Open DNS(※2), "", "" ※2 上記「DNS」は、ODBCデータソース アドミニストレーター(32bit版)で登録したシステムDSNです。 ------------------------ ドライバー:Microsoft Access Driver(*.mdb) ------------------------ ==================================== MySQLやODBCドライバーの再インストールを試みましたが、上記エラーが解消されません。 自業自得なのは重々承知しておりますが、復旧できなくて大変困っています。 お忙しいところ申し訳ありませんが、復旧方法のご教授をお願いいたします。 以上です。

  • MySQLのリモート接続

    こんばんは。 かなり悩んでます。お願いします、助けてください。 今、Redhat9にMySQLのデータベースサーバをつくり、 SolarisやAIXなどからリモートでMySQLサーバに接続することを考えています。 しかし、これまで一度もMySQLに触ったことがなく、何をどうしていいのかさっぱり検討がつかないのです。 そこで、みなさんに質問・・・というかお願いがあります。 MySQLサーバにリモート接続するために ・クライアント側に何をインストールしなきゃいけなくて、 ・サーバ・クライアント両方にどんな設定が必要で、 ・クライアント側からどんなコマンドでどんなオプションをつけたら リモート接続ができるのか教えてください!! もう、一から十まででずうずうしいとは思いますが、ほんとにさっぱりどうしていいかわからないうえに残された時間がないです(T_T) ローカルではMySQLサーバに接続できるので、サーバは動いていると思います。 どうか、細かく根気よくお願いします!!

    • ベストアンサー
    • MySQL
  • 【大至急】DB接続ができなくなって困っています!

    いつも参考にさせていただいております。 今回、自宅のPCに構築した開発環境のDBに、急に接続できなくなりました。 ==================================== 【開発環境】※ASP環境 OS :windows 8 IIS:8.0 DB :(1)MySQL 5.5.32   ※「mysql-connector-odbc-5.2.5」もインストール済。  (2)Access2013 ==================================== 先日まで、問題なくDBに接続できていましたが、寝ぼけて何かの設定を変えてしまいました。 ※恥ずかしながら、気づいたら設定変更後で何の設定を変えたのか不明です。。。 すると、今まで正常に接続できていたMySQLとAccessが、以下のエラーで接続できなくなりました。 ==================================== 【MySQL接続】 Microsoft OLE DB Provider for ODBC Drivers エラー '80004005' [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバーが見つかりません。 【Access接続】 Microsoft OLE DB Provider for ODBC Drivers エラー '80004005' [Microsoft][ODBC Driver Manager] 指定された DSN には、ドライバーとアプリケーションとのアーキテクチャの不一致が含まれています ==================================== なお、接続箇所のロジックは以下となります。 ==================================== 【MySQL接続】 Set oCn = Server.CreateObject("ADODB.Connection") oCn.Open UDL_FILE(※1), "", "" ※1 上記「UDL_FILE」は、以下の内容を設定しているUDLファイルを読み込んでいます。 ------------------------ [oledb] ; Everything after this line is an OLE DB initstring PROVIDER=MSDASQL;DRIVER={MySQL ODBC 5.2 Unicode Driver};SERVER=localhost;USER=hogeU;PASSWORD=hogeP;DATABASE=hoge; ------------------------ 【Access接続】 Set poCnMdb = Server.CreateObject("ADODB.Connection") poCnMdb.Open DNS(※2), "", "" ※2 上記「DNS」は、ODBCデータソース アドミニストレーター(32bit版)で登録したシステムDSNです。 ------------------------ ドライバー:Microsoft Access Driver(*.mdb) ------------------------ ==================================== MySQLやODBCドライバーの再インストールを試みましたが、上記エラーが解消されません。 自業自得なのは重々承知しておりますが、復旧できなくて大変困っています。 お忙しいところ申し訳ありませんが、復旧方法のご教授をお願いいたします。 以上です。

  • クライアントとサーバーのインストールについて

    今回初めてMySQL5.00を使おうとしてますが、サーバー側にMySQLをインストールし、クライアント側はODBCのみ入れたらサーバーのデータベースに接続できないようですが、クライアント側にもMySQLをインストールするのですか? 初心者で文献も見当たらず困ってます。 Help!

  • MySQLのODBC接続について

    いつも何か壁にぶつかったとき、このサイトを利用させていただいているものです。 早速ですが、今までWEBサーバーにあるMySQLのDBをODBC経由でMicrosoft Access2003に取り込みデータ処理をしておりました。 ところが先日、パソコンがダウンしてしまい、バックアップを取っておりませんでしたので、それを復旧するべくいろいろ試してみましたが、どうしてもうまく接続できません。 そのようなことで、今回また、このサイトを利用させていただくことにしました。 下記に私が試した主なことをお書きいたしますので、ヒントになるようなこと等でもかまいませんので、どこか悪いところをご指摘いただけると幸いに存じます。 以上よろしくお願い申し上げます。 ―――――――――――――――― 私の実行した主な内容 ――――――――――――――――   <phpmyadminで下記の通りユーザ作成>     ユーザ名>テキストフィールドの値:任意の文字列(=A)     ホスト:[すべてのホスト]選択     パスワード:任意に設定(=B)     グローバル特権:すべて特権を有効   <Connector/ODBCで>     Data Source Name:任意の文字列(=A)     TCP/IP Server:MySQLサーバーのホスト名     User:任意の文字列(=A)     Password:上記のパスワード(=B)     Database:当方で設定している名称   <結果> Connnection Failed:[HY000][MySQL][ODBC 5.2(w)Driver] Connection using old(pre-4.1.1) authentication protocol refused(client option ‘secure_auth’ enabled) というエラーメッセージが出て接続ができませんでした。 このエラーメッセージの意味もよくわかりませんので、上記の設定を基本にして、  TCP/IP Serverを、MySQLサーバーのホスト名或いは、IPアドレスに  ODBCドライバーを、MySQL ODBC 5.2 Unicode Driver、または、MySQL ODBC 5.2 ANSI Driverに  OSをWindowsXP、または、7に および、それらを組み合わせたりしましたが、いづれも上記のメッセージが出て接続できませんでした。 なお、MySQLサーバーが同じマシン上にあるローカル環境では、WindowsXP、および、7ともに問題なく接続できます。 以上が、私が実行した内容と結果の概略です。ヒントになるようなこと等でもかまいませんので、教えていただきたくよろしくお願いいたします。

  • Access -> MySql

    AccessからMySqlに接続しようとしているのですが、なかなかうまくいきません。 ODBCでデータソースを作成するところまでは出来ているのですが (TestでもSuccess:connection was mode!とでています) Accessを起動し 「ファイル」->「外部データの取り込み」->「テーブルのリンク」を選択し出てきたダイアログの「ファイルの種類」でODBCデータベースを選択するのですが、「データソースの選択」ダイアログが出てきません。 何に問題があるのでしょうか? Access:Access2003 MySql:5.0.27 ODBC:Mysql Connecter/ODBC 3.51.17 DBサーバ、クライアントともにXPを使用しています。