【Access】Web上のMySQLにODBC接続する方法(エックスサーバー)

エックスサーバーのMySQLのデータベースにAccessのODBC接続で、リンクテーブルとしてみたい! 今回はそんな記事です。

はじめに

気軽に~というわけには行かなかった(汗)
初期準備が意外とやることが多いので、設定する方法をメモします。

特に迷わなかった部分は、わりと簡単にざっくりかいています。(ソフトのダウンロードやインストールとか)
迷ったところはできるだけイメージも入れながら具体的に説明します。

大まかな流れは以下のような流れになります

1.エックスサーバーのサーバーパネルでSSH設定
2.SSHソフトで接続し設定
3.ODBC MySQLをインストールし、設定する
4.AccessのODBC接続しリンクテーブルする

SSHと聞くと触ったことがない方からすると難しいイメージがわくかもしれませんが、
簡単なことしかしませんのでご安心ください。

では細かい手順を記述します。

1.エックスサーバーのサーバーパネルでSSH設定

サーバパネルにログインします。SSH設定を選びます。

1-1.SSH設定

まずは「SSH設定」で「ONにする」をクリックします。(画像は押して有効になっている画面です)

1-2.公開鍵認証用鍵ペアの生成

となりのタブをクリックし、パスフレーズを入力します。
その後ボタンを押します。確認ボタンですので、その後の確定ボタンを押すのも忘れずに。

またその後 「ユーザID名.key」といったファイルがダウンロードされます。これは後のSSHソフトで使います、どこかに保存しておいてください。

1-3.公開鍵登録・設定

確定後にさらに隣のタブで、「公開鍵を登録する」ボタンを押します。こちらも確定ボタンも忘れずに。


サーバパネルの操作は以上になります。

2.SSHソフト 入手から接続設定まで

SSHソフトを使います。有名なのはTeraTermとかかもしれませんが、今回は「RLogin」が標準設定が使いやすそうでしたので、こちらで説明します。

SSHソフト「RLogin」をダウンロード

以下(作者サイト)よりダウンロードします。

http://nanno.dip.jp/softlib/man/rlogin/

RLoginを任意の場所に配置

ファイルはインストーラーではなく、exeファイルで直接動作できます。
任意の場所を決めて置いておきましょう。

RLoginを起動し初期設定

起動したら、まず「新規」をクリックします。
次に以下の赤枠の部分に情報を入力していきます。

エントリー:表示名ですので任意入力します。
ホスト名:sv●●●●.xserver.jp 等のご自身のサーバのアドレスを入れます。
TCPポート:「10022」とします。
ログインユーザー名:エックスサーバーのユーザ名を入力します。サーバパネルに入るときのやつですね。
ユーザー認証の~パスフレーズ:上記「SSH設定」の「1-2公開鍵登録・設定」で入力したパスワードを入力します。
SSH認証鍵:ボタンをクリックするとファイル指定する画面となります。「1-2公開鍵登録・設定」の時に作成された「ユーザID名.key」を指定します。

続けてに以下項目の設定をします。

プロトコル→ポートフォワード→新規 の順にクリックする。

Host Name(上):localhost Port(上):3306
Host Name(下):mysql●●●●.xserver.jp Port(下):3306

Host Name(下)は自身のmysqlのホストを入力します。

※MySQLのホストが分からない場合
エックスサーバーのサーバーパネルにログインし、「MySQL設定」のページ内の下の方に載っています。

最後にすべての「OK」ボタンを押し準備完了です。

RLoginを接続

そして接続してみます。問題なければ以下のような画面になっています。

実際にODBC接続する時は、
これを起動してログインしている状態でAccessを使うことになります。

3.ODBC MySQLをインストールし、設定する

ODBCドライバをダウンロードする

まずは以下よりODBCドライバをダウンロードします

MySQL :: Download Connector/ODBC

2018年6月時点では最新「Connector/ODBC 8.0.11」です。
「MSIインストーラ」と「ZIP」がありますが「MSIインストーラ」の方がいいと思います。

ODBCドライバをインストール

ダウンロード後、インストールします。

基本的に、同意する(英語)、次へ次へな流れですすめます。
SetupTypeが3択でてきますが「Typical」で問題ないと思います。

ODBCの設定を行う


コントロールパネルを開く。右上の表示方法は「大きいアイコン」にする。
管理ツールをダブルクリック→ODBCデータソース 32ビットと64ビットがあります。OSにあった方を選択します。(うちの場合はWin10 64bitなので64を選択)


ユーザDSNタブで追加をクリックし、
「MySQL ODBC 8.0 ANSI Driver」を選びます。


この入力をする時点で上記の「RLoginを接続」をしている状態がよいです。

Data Souce Name:任意入力します。半角英数が必須。
TCP/IP Server:127.0.0.1 と入力します。localhostのことです。
Port:3306
User:MySQLのユーザ名(サーバーパネルで確認する場合は「MySQL設定」→「MySQLユーザ一覧」
Password:↑に対するパスワードです。忘れた場合はワードプレスのwp-config.phpをテキストエディタで中身を参照しても良いかも。
Databese:もしここまで問題がなければ実際のMySQL内のデータベースが表示され選択します。必ず選択しましょう。
Test:↑を選ぶ前にクリックして確認してもいいかもしれません。成功時は「Connection Successfull」と表示されます。

最後にOKボタンを押して完了です。

※もし「test」がOKでも接続されていない場合は、以下のような原因も考えられます。
・「Data Souce Name」が全角になっている。
・「Database」が選択されていない。
・32/64ビットが環境と合っていない。

4.AccessのODBC接続しリンクテーブルする

いよいよ本番!AccessでMySQLに接続します。


既存ファイルからでも新規でもいいのでAccessを起動します。

「外部データ」のインポートの辺りから(画面はAccess2016。バージョンによって違うかも)
「ODBCデータベース」を選びます。


リンクテーブルを選び、次へ


コンピューターデータソース→作成したデータベースを選択→OKボタン


テーブルを選択しOKボタン


読み込んだテーブルをダブルクリックすると、テーブルが開きます。

ODBCでリンクテーブル成功しました!
編集も可能でした、普通のリンクテーブルとして扱えるようですね。

 

phpMyAdminの画面もみてみましょう、ちゃんとAccessで読み込めてますね。


phpMyAdminのテーブルがAccessでも見えてて不思議な感じがします。

 

さいごに

今回はエックスサーバーの例でした。

お試しで接続してみる場合は、事前にサーバーパネルの操作でMySQLのデータベースとユーザを作成し、phpMyAdmin上でテーブルを作成したもので確認することをお勧めします。(WordpressのMySQLは変に書き換わっても怖いのでやめた方がいいかも)

今回の記事は以上です。

コメント

  1. ぺんたんねっと様
    本ページを興味深く参考にさせていただきました。ありがとうございます。
    おかげ様で私もXSERVERにODBC接続できて、AccessシステムがWebで使える!と喜んだのですが…
    ODBC接続が60秒でタイムアウトしてしまいます。
    XSERVERに問合せ確認するとODBC接続不可の仕様との事でした
    (60秒でタイムアウトする仕様)
    何かの参考になればと思います。

  2. ぺんたんねっと様
    XSERVERにODBC接続する方法 参考にさせていただきました。ありがとうございます。
    XSERVERにSSH接続し、ACCESSからODBC接続するのを自動処理させようと思い、VBAにしてみたのですが、ODBC接続のところで 実行時エラー3146 ODBC呼び出しが失敗しました
    となってしまいます。
    手動でのODBC接続はうまくいくのですが。
    VBAではできないのでしょうか?