エックスサーバーのMySQLのデータベースにAccessのODBC接続で、リンクテーブルとしてみたい! 今回はそんな記事です。
はじめに
気軽に~というわけには行かなかった(汗)
初期準備が意外とやることが多いので、設定する方法をメモします。
特に迷わなかった部分は、わりと簡単にざっくりかいています。(ソフトのダウンロードやインストールとか)
迷ったところはできるだけイメージも入れながら具体的に説明します。
大まかな流れは以下のような流れになります
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」をダウンロード
以下(作者サイト)よりダウンロードします。
RLoginを任意の場所に配置
ファイルはインストーラーではなく、exeファイルで直接動作できます。
任意の場所を決めて置いておきましょう。
RLoginを起動し初期設定
起動したら、まず「新規」をクリックします。
次に以下の赤枠の部分に情報を入力していきます。
ホスト名:sv●●●●.xserver.jp 等のご自身のサーバのアドレスを入れます。
TCPポート:「10022」とします。
ログインユーザー名:エックスサーバーのユーザ名を入力します。サーバパネルに入るときのやつですね。
ユーザー認証の~パスフレーズ:上記「SSH設定」の「1-2公開鍵登録・設定」で入力したパスワードを入力します。
SSH認証鍵:ボタンをクリックするとファイル指定する画面となります。「1-2公開鍵登録・設定」の時に作成された「ユーザID名.key」を指定します。
続けてに以下項目の設定をします。
プロトコル→ポートフォワード→新規 の順にクリックする。
Host Name(下):mysql●●●●.xserver.jp Port(下):3306
Host Name(下)は自身のmysqlのホストを入力します。
※MySQLのホストが分からない場合
エックスサーバーのサーバーパネルにログインし、「MySQL設定」のページ内の下の方に載っています。
最後にすべての「OK」ボタンを押し準備完了です。
RLoginを接続
そして接続してみます。問題なければ以下のような画面になっています。
実際にODBC接続する時は、
これを起動してログインしている状態でAccessを使うことになります。
3.ODBC MySQLをインストールし、設定する
ODBCドライバをダウンロードする
まずは以下より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を接続」をしている状態がよいです。
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は変に書き換わっても怖いのでやめた方がいいかも)
今回の記事は以上です。
コメント
ぺんたんねっと様
本ページを興味深く参考にさせていただきました。ありがとうございます。
おかげ様で私もXSERVERにODBC接続できて、AccessシステムがWebで使える!と喜んだのですが…
ODBC接続が60秒でタイムアウトしてしまいます。
XSERVERに問合せ確認するとODBC接続不可の仕様との事でした
(60秒でタイムアウトする仕様)
何かの参考になればと思います。
ぺんたんねっと様
XSERVERにODBC接続する方法 参考にさせていただきました。ありがとうございます。
XSERVERにSSH接続し、ACCESSからODBC接続するのを自動処理させようと思い、VBAにしてみたのですが、ODBC接続のところで 実行時エラー3146 ODBC呼び出しが失敗しました
となってしまいます。
手動でのODBC接続はうまくいくのですが。
VBAではできないのでしょうか?