Microsoft Access から、SSH経由で公開サーバーの MariaDB に ODBC で接続する

Yossy
2024-05-15
2024-05-15

MariaDB のデータ操作を便利にするツールがいろいろありますが、Microsoft Access での操作が便利な時があります。
※個人的には、普段 HeidiSQL を使うことが多いです。

EXCEL と Accesss の間でコピペとかできたり(複数行、複数列まとめて操作できるて便利)、Access のフォーム、レポート、クエリーも MariaDB に対して使えるのが、とても便利です。

ただ、OBDC 経由でDBサーバーに接続すると、想定外に負荷をかけたり、データ更新してしまったりするので、本番サーバーに対して使う場合は、注意が必要かもしれません。

1.MariaDB に、ポートフォワードします。

Windows 11 で、SSHコマンドが利用できるので、コマンドプロンプトから SSHコマンドでポートフォワードします。

ssh -L [ローカルポート]:[DBサーバー]:[DBポート] -i "鍵ファイル" [SSHユーザー名]@[SSHサーバー] -p [ポート番号]

具体的には、こんな感じです。

ssh -L 13306:mysql.exsample.com:3306 -i "C:\*****\private.key" user@db.example.com -p 22

これで、ローカルPCのポート 13306 にアクセスすると、db.exsample.com サーバーの MySQL/MariaDB に接続できるようになります。

★こちらの記事の方法でもポートフォワードできます
SSHポートフォワードを利用する(Tera Term転送編)

2.ODBC コネクターをインストール

Access は、ODBC 経由で、MySQL にアクセスするので、MariaDB の ODBC コネクタをインストールします。

https://mariadb.com/downloads/connectors/

ここからODBC コネクターをダウンロードして、インストールしました。

3.ODBC を設定します

(1) Windows の「ODBC データ ソース アドミニストレーター」 を起動します。「追加」をクリックすると、MariaDB ODBC ドライバーが表示されているので、そちらを選択して、「完了」をクリックします。

img20230825A

(2) ODBC の設定画面が表示されるので、Name に適当な名前を入れて、[Next >] をクリック


img20230825B

(3) いくつか設定を入力します

Server Name : localhost (ポートフォワードしているので、localhost を指定)
Port : 13006 (SSH コマンドで指定した、ポートフォワードしたポートを指定)
User name : データベースへ接続に仕様するユーザー名を指定
Password : データベースへ接続に使用するパスワードを指定

img20230825Cこの状態で、[Test DSN] をクリックしますと、入力内容に問題がないと接続に成功した旨の画面が出てきます。

img20230825D

4.Access から MariaDB にリンク(接続)します。

外部データタブを開いて、[新しいデータソース] - [他のソースから] - [ODBC データソース] を選択します。

img20230825E

リンクテーブルの作成を選びます(インポートすると、Access にコピーが作成されるので、データを操作しても、サーバーに反映されなくなります。その方が都合がいい場合は、インポートを選びます。)

img20230825F

先ほど作成したデータソースを選択します。どのテーブルをリンクするか聞いてくるので、それを選択します。

img20230825G

Access に MariaDB のテーブルがリンクされました。

img20230825I

この状態で、Access からテーブルを操作すると、MariaDB 側のデータも更新されます。

こんな感じで、MariaDB のデータに対して、Access の持つ様々な機能を利用できるので、ちょっとた集計(クエリ)や帳票作成(レポート)に活用できるんじゃないでしょうか?