エックスサーバーの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のデータも編集されます。
お疲れさまでした。