エックスサーバーのMySQLのデータをAccessで読み書きする方法

お客様から、
ローカルにあるAccessのデータベースを複数人で編集するので、排他制御をしてほしい
とお願いされました。

お客様の要望として、
1.今まで通りAccessで編集したい
2.排他制御をしてほしい
3.サーバー上にデータベースを置きたい

とのことで、今回は
「エックスサーバーのMySQLのデータベースにAccessのODBC接続で編集できるようにする」
をまとめてみました。

目次

まず、下記の4項目を順番にやっていきます。

1.エックスサーバーでSSH設定
2.SSHソフトの設定
3.ODBCの設定
4.AccessでODBC接続の設定とリンクテーブル

※SSHとは【 Secure Shell 】
サーバーなどの離れたコンピュータと通信するための手順です。
共通鍵を暗号化して鍵交換を行っています。
ネットワーク上の通信がすべて暗号化されるため、安全に通信することができます。

※ODBCとは【 Open Database Connectivity 】
データベースを編集する方法の標準を定めたものです。

 

1.エックスサーバーでSSH設定

エックスサーバーのサーバーパネルにログインします。

SSH設定を選んでください。

①「SSH設定」のタブの「ONにする」を選んで「設定する」ボタンを押してください。

②隣の「公開鍵認証用鍵ペアの生成」のタブを選びます。
「パスフレーズ」を入力します。
※これはパスワードになります。覚えておいてください。
(下記2.の②のSSHソフトの設定で使います。)

「確認画面へ進む」ボタンを押します。

確認できましたら「生成する」ボタンを押してください。

生成しますと、「ユーザID名.key」といったファイルがダウンロードされます。
これは後のSSHソフトで使うので、保存しておいてください。
(下記2.の②のSSHソフトの設定で使います。)

 

2.SSHソフトの設定

今回、SSHソフトは設定が簡単だったので「RLogin」を使います。

①下記よりダウンロードしてください。
RLoginダウンロード
※「実行プログラム」と書いてある行です。

※RLoginはインストーラーはありません。
exeファイルを任意の場所に置いてください。

②「RLogin」を起動します。
まずは「新規」ボタンを押してください。

サーバーの設定をします。
赤枠の項目を入力してください。

●エントリー
RLoginを起動したときにサーバーを選ぶための名前です。任意で入力してください。
●ホスト名
エックスサーバーのアドレス(サーバー番号)を入力してください。
●TCPポート
「10022」と入力してください。
●ログインユーザー名
エックスサーバーのサーバーIDを入力してください。
●パスワードorパスフレーズ
上記1.の②で入力したパスフレーズを入力してください。
●SSH認証鍵
ボタンを押してください。
上記1.の②で生成した「ユーザID名.key」というファイルを指定してください。

続けて、ポートフォワードの設定をします。
※ポートフォワード(ポート転送)とは
特定のポートにやってきたデータを別のコンピュータに向かって送り出してやることです。

「プロトコル」→「ポートフォワード」→「新規」の順にクリックしてください。

●ListenedのHostName
「localhost」と入力してください。
●ListenedのPort
「3306」と入力してください。
●ConnectのHostName
MySQLのホスト名を入力してください。
※MySQLのホスト名はエックスサーバーのサーバーパネルの「MySQL設定」の下のほうに載っています。
●ConnectのPort
「3306」と入力してください。

◎Rloginで接続していても一定時間過ぎると勝手に切断されてしまいます。
それを防ぐために、下記の設定もします。

「プロトコル」のKeepAliveパケットの送信間隔をチェックして、時間を「60」秒に設定してください。

最後に「OK」ボタンを押してください。
これでRloginの設定は終わりです。

③Rloginの接続
上記で設定したサーバーを選んで「OK」ボタンを押してください。

接続が成功すると以下のような画面になります。

これでSSHソフトの設定は完了です。

 

3.ODBCの設定

①ODBCをダウンロードして、インストールします。
ODBCは下記からダウンロードしてください。
ODBCダウンロード

インストールは基本的に「同意する(英語)」、次へ次へと進めます。
SetupTypeは「Typical]で問題ないと思います。

②ODBCの設定
コントロールパネルを開きます。

 

右上の表示方法を「大きいアイコン」にします。
「管理ツール」をダブルクリックします。

「ODBC データ ソース (64 ビット)」を起動してください。
※パソコンが32ビットの場合は32ビットのほうを選択してください。

 

「ユーザーDSN」タブで「追加」ボタンを押します。
「MySQL ODBC 8.0 ANSI Driver」を選択して、「完了」ボタンを押してください。

次にODBCの設定をしますが、Rloginが接続されていることを確認してください。
接続できていない場合は接続してから、下記の設定をおこなってください。

●Data Souce Name
任意で入力してください。半角英数のみです。
●TCP/IP Server
「127.0.0.1」と入力してください。localhostのことです。
●User
MySQLのユーザ名を入力してください。
※エックスサーバーのサーバーパネルの「MySQL設定」でアクセス権所有ユーザを確認してください。
●Password
ユーザに対応したパスワードを入力してください。
※パスワードを忘れてしまった場合はエックスサーバーのサーバーパネルの「MySQL設定」の「MySQLユーザ一覧」でパスワードを再設定してください。
●Database
パスワードまで正確に設定できたら、データーベース名が表示されます。
必ず選択してください。
●Test
接続が成功したら「Connection Successfull」と表示されます。

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

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

 

4.AccessでODBC接続の設定とリンクテーブル

AccessでMySQLと接続します。
①Accessを起動してください。

※この画像のバージョンはAccess2010です。

「外部データ」→「新しいデータソース」→「他のソースから」→「ODBCデータベース」を選択します。
※他のAccessのバージョンではメニューが違う場合もあります。

リンクテーブルを選びます。

「コンピューターデータソース」タブの
先ほどODBC設定で作成した「Data Souce Name」を選択し、」「OK」ボタンを押してください。

テーブルを選択して、「OK」ボタンを押してください。

左側の読み込んだテーブルをダブルクリックするとテーブルが表示されます。

AccessからエックスサーバーのMySQLのデータを見ることができました!
Accessから編集すると、エックスサーバーのMySQLのデータも編集されます。

お疲れさまでした。