MYSQLをEXCELからつなぐ勉強しています。自分のパソコンからはMYSQLもインストールしてlocalhost 127.0.0.1 port3306 で接続が出来て、excelシートに貼り付けが出来ますが、LAN内の違うPCからはそのEXCELのファイルを開いてもデータソースがみつからないとかドライバーがないとか出ます。LAN内の全てのパソコンにライブラリをインストールしなくてはいけないのですか?もしくは127.0.0.1は自分のPCだから他から見るときはMYSQLから違うconnectionで作るのですか?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/06/07 23:42:23
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:koriki-kozou No.1

回答回数480ベストアンサー獲得回数79

ポイント60pt

>127.0.0.1は自分のPCだから他から見るときはMYSQLから違うconnectionで作るのですか?

そのとおり

>データソースがみつからないとかドライバーがないとか出ます

自分のPC上(127.0.0.1)を探せと言われて探しても見つからないという結果だから当然だよね


以下、3点は必須ね

・127.0.0.1 の箇所にはMySQLが稼動しているPCのIPアドレスを入れる

・userとpasswordは同じ

・ファイアーウォールなどを設定しているのであればポート3306は許可しておかないといけない

id:shotomo

EXCELの以下のところを変更しましたが、だめです。

Function P_CnString() As String

' MySQLデータベースへの接続文字列を返す

P_CnString = "DRIVER={MySQL ODBC 5.1 Driver};" _

& "SERVER=localhost;" _

& " DATABASE=test;" _

& "UID=root; pwd=0512ab; OPTION=3 "

End Function

localhostのところに192.168.1.6を入れてもつなぐことが出来ないと出ます。ファイアーウォールは3306は例外になっています。

2010/06/07 22:29:51

その他の回答2件)

id:koriki-kozou No.1

回答回数480ベストアンサー獲得回数79ここでベストアンサー

ポイント60pt

>127.0.0.1は自分のPCだから他から見るときはMYSQLから違うconnectionで作るのですか?

そのとおり

>データソースがみつからないとかドライバーがないとか出ます

自分のPC上(127.0.0.1)を探せと言われて探しても見つからないという結果だから当然だよね


以下、3点は必須ね

・127.0.0.1 の箇所にはMySQLが稼動しているPCのIPアドレスを入れる

・userとpasswordは同じ

・ファイアーウォールなどを設定しているのであればポート3306は許可しておかないといけない

id:shotomo

EXCELの以下のところを変更しましたが、だめです。

Function P_CnString() As String

' MySQLデータベースへの接続文字列を返す

P_CnString = "DRIVER={MySQL ODBC 5.1 Driver};" _

& "SERVER=localhost;" _

& " DATABASE=test;" _

& "UID=root; pwd=0512ab; OPTION=3 "

End Function

localhostのところに192.168.1.6を入れてもつなぐことが出来ないと出ます。ファイアーウォールは3306は例外になっています。

2010/06/07 22:29:51
id:ko8820 No.2

回答回数1221ベストアンサー獲得回数69

ポイント31pt

コマンドプロンプトで、

ipconfig /all

として、そのPCのIPを見てください。

127.0.0.1をそのIPに書き換えたら動きますよ。

id:shotomo

MYSQL AdministratorでNEW CONNECTIONのところに自分のアドレスを入れても以下のように出ます。

Host'192.168.1.6'is not allowed to connect to this MySQL serverになってしまします。

EXCEL側でlocalhostを192.168.1.6に変更してもアクセス出来ませんでした。ファイアーウォールは3306は例外になっています。

2010/06/07 22:37:45
id:Bombastus No.3

回答回数409ベストアンサー獲得回数52

ポイント30pt

以下の確認をお願いします。

  1. MySQLサーバ及び「LAN内の違うPC」のポート3306を解放しましたか?
  2. LAN内の違うPCにMySQL ODBC Connectorをインストールしましたか?
  3. root以外のユーザーで接続しようとしていますか?→接続できない場合を参照のこと。
id:shotomo

確かめます。

2010/06/07 23:39:35
  • id:koriki-kozou
    koriki-kozou 2010/06/07 22:41:38
    肝心の部分が抜けてたね ごめん

    MySQL ODBC 5.1 DriverはMySQLが稼動しているマシン上にあるものを自動的に持ってきてくれたりはしないので、クライアント側でもMySQL ODBC 5.1 Driverの設定が必要
  • id:shotomo
    driverもクライアントにインストールしましたが、[MySQL][ODBC5.1Driver]NECCOMP is not allowed connect to this MySQL serverとエクセル上でエラーが出ます。すみません。手間をかけて。。
  • id:koriki-kozou
    koriki-kozou 2010/06/07 23:32:26
    MySQLからエラーが返ってきたエラーなので、通信環境とクライアント側の準備は出来たことになりますが、肝心のMySQL側の設定がまだのようなので、クライアントPC(のIPアドレス)からの接続を許可
    学習段階なら「何でも受け入れという意味の%」にしてもいいけど、本格的実験に移るならIPアドレスを入れておく必要もあるね


    マニュアルだとエラーの意味と対処は下記
    http://dev.mysql.com/doc/refman/5.1/ja/access-denied.html
    >>
    MySQL サーバを実行しているホストではないホストから接続しようとして以下のエラーが発生する場合、クライアント ホストと一致する Host 値では、レコードが user テーブルにないということを示します。

    Host ... is not allowed to connect to this MySQL server

    これは、接続時に使用するクライアント ホスト名とユーザ名を組み合わせたアカウントをセットアップすることで解決します。

    接続元のコンピュータの IP アドレスまたはホスト名がわからない場合、user テーブルの Host カラムに '%' を使用します。そして、そのクライアント コンピュータから接続しようとするときに、SELECT USER() クエリを使用して、実際にどのように接続したか確認します。そのときに、user テーブル エントリの '%' をログにある実際のホスト名と置き換えます。この作業を行なわない場合、どのホストからでもそのユーザ名での接続ができることになるので、セキュリティ上の問題になります。
    <<
  • id:shotomo
    大変申し訳ありませんでした。インストール時にrootをリモートから許可するのレ点をしていなかったためでした。自分のIPとドライバーセットアップでつながりました。ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません