ADO(?)でデータベースへ接続する際のコードについて教えて下さい。VBAで以下のコードを用いて
Cドライブに設置されたMySQLへ接続しました。これはうまく動作しました。
Const ConnectionString = "Driver={MySQL ODBC 3.51 DRIVER};" _
& " SERVER=localhost;" _
& " DATABASE=test_db;" _
& " USER=test_user;" _
& " PASSWORD=testpassword;"
~
Dim con As New ADODB.Connection
con.Open ConnectionString
ここで、XREAというサーバーに設置したデータベースに接続したいと思い、以下のコードに書き換えましたが、「[MysSQL][ODBC 3.51 Driver] Can't Connect to MySQL server on 's000@xrea.com'(10060)」という実行時エラーが出ます。
Const ConnectionString = "Driver={MySQL ODBC 3.51 DRIVER};" _
& " SERVER=s000@xrea.com;" _
& " DATABASE= databasekenuser;" _
& " USER=databasekenuser;" _
& " PASSWORD=testpassword;"
これを解消する方法を教えて下さい。
ADOでもODBCでも接続用にTCP/IPポートを使います。よほど特殊なレンタルサーバー屋さんじゃない限り、主要なポート以外は閉じています。特にデータベースを触るポートを外部からアクセスされると、セキュリティとトラフィックの面からたまったもんじゃありません。
インターネット越しにデータベースを触るというのはやめておいたほうがいいと思います。
回答ありがとうございます。初学者のため回答の意味が良く分からなかったので補足お願いします。
>ADOでもODBCでも接続用にTCP/IPポートを使います。
TCP/IPポートは通常、PC内での通信にのみ使われ、インターネットレンタルサーバーは外からのTCP/IPポートを用いたアクセスに対して閉じているということでしょうか?
>インターネット越しにデータベースを触るというのはやめておいたほうがいいと思います。
データベースとのやり取りは、
1:OCBDを用いてデータベースに事前登録データ(業務内容)を登録
2:オーダーメイドのアプリケーションソフトウェア(おそらく通信手段としてはODBCを利用)を用いて選択入力した業務内容を記録
の2種類があり、今回1:の通信手段を行いたいと思っています。
1:が無理だとしても、少なくとも2:の「アプリケーションからデータベースと通信」を行う必要があるのですが、その際にはどうやって接続を確保しているのでしょうか?
TCP/IPポートを利用できないということは、どのようにデータベースに書き込み/読み出しを確保したら良いのでしょうか?