WordPress のデータを FileMaker で管理・編集しようと CSV で工夫しているうちに、そもそもデータの書き出し読み込み作業をすっ飛ばして直接データベースに接続できるのではないかと思いついたという話の続き、いよいよFileMakerをWordPressのMySQLデータベースに接続します。
CSVエクスポート、インポートのことを長々と書いてきましたがものには順序というものがありますから。今回はいよいよFileMakerをWordpressのMySQLサーバーに直結させるという話です。
汎用的な話にはなりません。環境や目的や使用ツールによっていろいろ違ってきますから。ですので最初にこの話が該当する環境の条件を書いておきます。
環境条件
素人です。
それ環境かいとツッコまれそうですが、これが意外と大事。FileMaker と MySQL を接続するというようなことを行いますが、やるのは私です。素人です。
関連情報を検索していくとわかりますが、一定水準以上の専門知識を持った人向けの情報ばかり出てきて何が書いてあるのかさっぱりわかりません。このブログは一般人のデジタル部活、基本的に素人が何とか無理矢理に SQL 接続を実現できたメモとしてのみ機能します。
FileMaker Pro を使います。FileMker Server ではありません。Advanceでもありません。
私の場合バージョンは14ですが、かけ離れていない限り大きな問題はないと思われます。それより、関連情報を探していくと FileMaker Server の機能を前提にしているようなプロっぽい記事も多くヒットするので、そうではなく、ふつうの FileMaker Pro ですよ、と明記します。
お安い共用レンタルサーバーを契約しています。
これもですね、情報の多くが自社サーバーとか、少なくとも設定を弄れる専用サーバーを契約しているとか、そういうレベルを前提としている記事が検索結果にたくさん登場します。ヒットした記事を参考にしながら作業を勧めて、途中で「あ。これ自社サーバーでないと無理やん」っていうことになりますね。そういうことがよく起きました。
このブログのこの記事は、ふつうのお安い共用レンタルサーバーで運用している前提で話を進めます。
SSH が利用できるサーバーです。
ちなみに私はXサーバーの一番安いプランを契約しています。以前はさくらでした。他を知りません。
これから書く SQL 接続には SSH 接続というレンタルサーバー屋さんが提供している機能を使います。Xサーバーでもさくらのスタンダードでもこの機能がありました。SSH 接続というのが何なのかいまいちよくわかっていませんが、とにかくそれが出来ることが前提となります。
以上のような環境を前提とした記事となります。
が、もうひとつありました。
コンピュータが Mac です。
この手の情報を探していると Windows の記事はよく見かけますが Mac のは見つけにくいです。「Macの人は読み替えてね」みたいな記述にもよく出会います。読み替える力が無いので大層困ったものです。
「Mac 使ってて FileMaker 使ってて WordPress 使ってて SQL 接続したい」などという人がいったいこの世に何人くらいいるのか、きっと数人しかいないでありましょう。そんなあなたや私のための記事です。
MySQL 接続への道
FileMaker 社の情報がまず最初の一歩となります。
外部 SQL データソースの概要 というページがありましたので、これが役に立ちそうです。
FileMaker Pro は、SQL データソースにライブ接続することができます。
出来そうでわくわくします。
ライブ接続と ODBC/JDBC 機能
しかしその後いきなりわけのわからないことが書いてあります。
—————- 追記部分 —————
[註: ここで改変・追記のお知らせです。 2017年9月]
当初、FileMaker社の記述は混乱を極め、情報に辿り着くのに大変な苦労を伴いました。しかし後にページが更新されて情報がまとめられ、理解しやすい内容に変更されました。
ここには情報に辿り着くまでの苦労話や不親切なサイト作りへの文句などをだらだら書いていましたがすべて削除しました。ただ削除しすぎると何のことか判らなくなるので一部は残しています。今ではFileMaker社ページを見れば判ることを「見つけた」とか書いている部分があるのはそういう事情です。
そんなこんなで、この –追記部分– では削除した部分を更新されたページに基づいてささっと流します。
外部 SQL データソースの概要 が更新され、答えの多くがここで見つかります。
どの外部 SQL データソースが、FileMaker 16 とうまく連携すると認められているのですか?
リストで明確に書かれています。その中に MySQL 5.7.14 Community Edition あります。目的はこれです。
始める前に
適切な動作認定されている ODBC ドライバをインストールしてください。
以前は矛盾したことが書いてありましたが今ではちゃんとこう書かれています。で、次の「さまざまなリソース ESS (ODBC/JDBC) ドライバ」の項でこう書かれました。
外部 SQL データソースとの接続機能を利用するには、以下の認定されたドライバのどれか一つを使用する必要があります。
なるほどそれが必要なのですね、と、判る記述になりました。そしてズバリの答えがその下に書かれました。
MySQL
Windows で MySQL Community Edition 5.7.14 を使う場合: MySQL ODBC 5.3 Unicode Driver バージョン 5.3.7(32 ビットおよび 64 ビット)
Mac OS X で MySQL Community Edition 5.7.14 を使う場合: Actual Technologies, Open Source Databases バージョン 4.1.0
この一連の明確な情報、以前はページにまとまっておらず、リンクをたらい回しにされてループに陥ったり大変な苦労をしないと判明できなかったのですが今はすっきりまとまりました。
答えがわかりましたので、当ブログのこれより以下には無駄な記述も含まれます。ご了承ください。
面倒なところは飛ばしてお読みください。
尚、引用したFileMaker社のページは2017年9月に確認したものです。今後も更新されると思いますが前みたいな謎解きに戻ることはないと思いますのでこれ以降は更新されても追随しません。
————— [改変・追記ここまで] —————-
接続の概要
というわけで FileMaker を SQL に接続する概要です。
- ODBC ドライバのインストール
- ODBC のDSN設定を行う
- レンタルサーバーのSSH接続を設定する
- SSHを利用してSQLサーバーにトンネル接続する
- FileMaker Pro のテーブルとして接続する
概要でした。簡単そうに見えますね。ところがどっこい。
では一つずつ見ていきましょう。
1. ODBC ドライバのインストール
ODBC ドライバというものがが必要です。これをパソコンにインストールします。
FileMakerのナレッジベースをたらい回しにされてもインストール方法がわかりません。諦めて普通に検索するとMySQLのサイトがヒットして、おおこれかとダウンロードしようとしたらOracleへのサインアップが求められ、なんかちょっと変だなとなります。
もう一度FileMakerのヘルプに戻ってたらい回しにされていくうちに、ようやくわかりました。
インストーラーは FileMaker Pro のインストールディスクのExtrasフォルダ内にあります。何だこれだけのことだったのか。最近「インストールディスク」という言葉自体を聞かなくなって、この言葉の意味が一瞬わからなかったんです。
探しまくったドライバのインストーラーですが、実はこの場で急がなくても後でもよかったんですよ。後で他のものと一緒にインストールできたりしましたから。でも順序として「まずドライバから」っていう、そういう感じで書いておきました。*
* 実はドライバのインストールに関しては記憶があやふやで、最初のドライバをインストールしてからManagerをインストールするのか、同時にインストールされたのか、後でやるDNS設定の時にインストールしたのか、よく覚えていないんです。念のために最初にドライバをインストールしておくという正しい手順を踏まえておけばいいかなと。
ODBC MANAGER
ODBCドライバをインストールしただけでは駄目で、 ODBC Manager なるアプリケーションで適切なDSN設定をしてやる必要があります。
ドライバのインストール時に、Macだと「/アプリケーション/ユーティリティ/」にManagerがインストールされると思います。されてなければ後でインストールしましょう。後述します。
ODBC Manager を開くとこんな画面で、ここに適切な設定を行うことにより FileMaker と接続することが出来ます。
DSN設定と言ってもちょいちょいと数値を入れるだけみたいに思ったら大間違いで、結論を先に書くと、適切なDSN設定を行うことは普通の人間には無理です。
適切なDSNを売っているのでそれを買うしかありません。ただで手に入れようとか、自力で設定してやろうとしても無駄なんです。無駄だとわかりましたから私のように無駄な努力をしなくて済むよう(相当無駄な努力をしたらしい)、最初に書いておきます。
MacOS X で ODBC Manager のインストール
FileMaker のヘルプにもこうあります。
1. http://www.odbcmanager.net にアクセスして、Actual Technologies 社の ODBC マネージャをインストールしてください。
あら、やっぱりここでインストールするのであったか。記憶があやふやですいません。
http://www.odbcmanager.net を開くとこんな感じのManager ダウンロードの画面となりますからダウンロードしてインストールします。
もう一回さっきのManager画面を改めて。
FileMakerでリレーションシップグラフのODBCテーブルを使用する場合はこの設定の「システムDSN」のみがサポートされるとのことです。
「システムDSN」タブから「追加」を選んで設定するわけですが、ここで素人が設定するのは無理なので他社の設定ファイルを使うことになります。嫌だと思ってもそうするしかありません。
正確には設定ファイルというよりアダプターというようなものみたいです。
ではその設定やアダプターとやらをどこで手に入れるのか。ここまで到達するのに一週間かかった私がさくっと書いておきます。
2. ODBC のDSN設定を行う
actual technologies 社の Open Source Databases を購入
Actural Technologies という会社のここで売っています。このページから何種類かのDSN設定ファイルを購入できます。メニューから選んで籠に入れて購入です。
この中で必要なのは Open Source Databases です。間違いのないよう選んで購入します。私は最初間違って別のを買ってしまいました。
このサイトはデザインが悪く、選んで購入するのがとてもややこしくなっています。
いきなり購入しなくてもお試し版としてダウンロード出来ます。お試し版で試してみて上手く行ったら購入してもいいでしょう。
私の場合はお試し版で上手く行かなかったのに「買えば上手く行くかも」と幻想を抱いて即購入、おまけに別のアダプターを間違って購入してしまうという間抜けの二乗をやらかしました。皆さまはお気を付けください。
(間違って購入したことをメールで丁寧に伝えたところ、交換していただけました)
さてデモ版なり購入版なりを手に入れたらインストールします。
インストールではカスタムインストールで設定ファイルを選べます。使用するのは Actual Open Source Databases だけです。ここに ODBC Manager もありますね。最初にManagerをインストールする必要がないというのはこのことです。ここからインストールできます。
インストールすると ODBC Manager から設定を追加することが出来るようになります。
DSN Configuration
ODBC Manager を起動し「システムDSN」から「追加」を選びます。
ドライバを選択の画面でActual Open Source Databasesを選びますと、設定画面が現れます。
購入したときは「ライセンス」からライセンスキーを入力します。えっへん。
「続行」しましょう。
名前と説明は自分用ですので判りやすいものを書きます。ODBC Manager の画面上に現れる名前です。「続行」します。
ここで接続の設定となります。
「サーバー」にサーバーの IP アドレス、「ポート」にポート番号、その下にサーバーに対するログインIDとパスワードを入れます。
問題はここなわけです。普通にサーバーのIPアドレスや適当なポート番号を入れても接続できません。
自社サーバーだったり自分で管理しているサーバーなら、サーバーIPとポートを入力すれば繋がります。
しかしレンタルサーバーを利用している場合ここにサーバーアドレスを入れても受け付けてもらえません。
レンタルサーバーは通常、こうした形で SQL サーバーに接続することを許可されていないんです。
DSNコンフィグは一旦おあずけ、SSHトンネルしてから改めて
接続できないわけですからここで一旦諦めます。
何とかして接続したい時、SSH を利用してサーバーに接続します。SSHというのはコマンドベースの接続です。レンタルサーバーは表面的にデータベースに接続できませんが、コマンドベースでは接続できるようになっていることがあります。
SSHでくぐり抜けサーバーに接続することを専門家たちは「トンネル」と言うそうです。地下道とか裏道ではなくてトンネルです。堂々とやればよろしい。
しかしトンネル接続って何だ。そもそもSSHってどうやるんだ。わかりません。でも出来ました。判らなくても出来ることがあります。
SSHによるトンネル接続のやりかたは、この後または次回の記事に書きます。
さて次回の記事(その2 SSHトンネル)の通りSSHによるトンネル接続が成功すれば、改めてDSNコンフィグの続きを行います。
サーバーIPアドレスを入れ、ポート番号を入れ、ログインIDとパスワードを入れ、続行すると最後に接続するデータベースを入力するこの画面になり、晴れて接続の準備がすべて整います。
トンネル接続をしている時だけ生きている設定ですから、接続を解除しているときにこの画面を開いてもエラーになります。そういう生もの設定です。
ここまで来ればあとは FileMaker Pro で設定すれば完了。
…ですが続きはまた次回に繰り越します。
※ 続き出来ました。その2 SSHトンネル に続きます。
こんにちは。記事とても参考かつ楽しく拝見させていただきました!
このwordpressとFilemakerとの連携で、wordpressにプラグイン的に機能を追加(またはプラグインの改変)ができないものかと思っています。
例えばwordpressにはWooCommerceなど便利なカートシステムがそろっているのですが、不必要な機能・項目や日本語表記になっていない部分もあり、標準では使いづらく、かといってプラグインを改変できるだけの知識(また度量)もなく、そのあたりの項目の追加・改変や非表示設定などをFilemaker側でできればベストだと思っています。
素人発想で根幹のDBが扱えるのであれば、できそうにも感じるのですが、ご意見をお聞かせいただいてよろしいでしょうか?
コメントありがとうございます!FileMakerとの連携で日々格闘中で、工夫の仕方も試行錯誤の連続です。書きたい記事もぜんぜん書けていません。
プラグインに関してですが、さすがにこれは難しいと思います。データベースの処理ではなくてPHPとかWordperssコアのプログラミングに関することですから。
一部のプラグインはカスタムタクソノミーやカスタムフィールドに見えない項目を書き加えることで機能を制御するものがあります。こういうのはFileMakerから書き加えたり修正したりすることである程度管理できます。
おっしゃっているプラグインの変更したい部分がどのようなところかわかりませんけど、もしカスタムフィールドに見えない項目を追加するだけのシンプルな機能の部分でしたら少しは使い勝手を良くする方法があるかもしれませんね。
プラグインのオンオフや機能の根深いところはどうしようもありません(というかプログラミングの知識が私にありませんので・・)
FileMakerにスタッフの向こう一週間の出勤時間をスタッフ各自で、そのときいる場所に縛られずスマホから入力させたいが、FileMaker GoやWebDirectの同時接続ライセンスは高いので困っていました。
そこでWordpressにシフト管理プラグインを入れて、FileMakerと連携させようと考えましたが、ODBCのドライバを入れたとしても果たして自分でSQL文法もよくわからないのに使いこなせるのだろうかと悩んでましたが実例を見せて頂いて普通にFileMaker内のテーブルみたいに扱えるんだとわかって助かりました。
現在無事に連携させて開発が進んでます。
Wordpressに入力しても、外部データソースだとFileMakerには即時に反映されないのでスクリプトで「ウインドウ内容の再表示」などを駆使してなんとか頑張ってますが、それは仕方ないと思ってあきらめました。
本当に有用な情報をありがとうございました。
コメントありがとうございます。自分で読み返しても「なんて分かりにくい記事なんだ」と落ち込みますが、お役に立てたのなら嬉しいかぎりです。
そうですね、データベースはリアルタイムに反映されないですね。「ローカルで編集してリモートに送る」という形になるので少しややこしいですが、直接接続できるのはとても便利でした。私も試行錯誤しながらやっております。
(コメントいただいていたのに長く放置状態が続いていてすいませんでした)