FileMakerServer19稼働のCentOSサーバにMySQLのODBCドライバを設定


はじめに

前書き

対象読者

  • Claris FileMaker Server 19 ユーザ
  • FileMaker から MySQL への接続を ODBC 経由でおこないたい

基礎知識

  • CentOS は Red Hat Enterprise Linux 互換です

環境

  • Linux CentOS 7.9
    • 7.8 でももちろん可
  • MySQL ODBC Connector 8.0.22

本題

MySQL ODBC ドライバのインストール

インストール or 最新 ver. 更新

  • 以下コマンドでインストール
    • あるいは既にインストールされている場合は最新の ver. へ更新
sudo rpm -Uvh http://repo.mysql.com/mysql80-community-release-el7.rpm
sudo yum install mysql-connector-odbc
  • 実行すると以下のようなログが表示される
    • ここでは ver. 5.2.5 から 8.0.22 へ更新されている
    • 途中で進めるかどうか尋ねられるところでは y を入力して進めること
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ty1.mirror.newmediaexpress.com
 * epel: nrt.edge.kernel.org
 * extras: ty1.mirror.newmediaexpress.com
 * updates: ty1.mirror.newmediaexpress.com
Resolving Dependencies
--> Running transaction check
---> Package mysql-connector-odbc.x86_64 0:5.2.5-8.el7 will be updated
---> Package mysql-connector-odbc.x86_64 0:8.0.22-1.el7 will be an update
--> Processing Dependency: mysql-community-client-plugins = 8.0.22 for package: mysql-connector-odbc-8.0.22-1.el7.x86_64
--> Running transaction check
---> Package mysql-community-client-plugins.x86_64 0:8.0.22-1.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================
 Package                          Arch     Version         Repository                    Size
==============================================================================================
Updating:
 mysql-connector-odbc             x86_64   8.0.22-1.el7    mysql-connectors-community   4.1 M
Installing for dependencies:
 mysql-community-client-plugins   x86_64   8.0.22-1.el7    mysql80-community            235 k

Transaction Summary
==============================================================================================
Install             ( 1 Dependent package)
Upgrade  1 Package

Total download size: 4.3 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
warning: /var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-client-plugins-8.0.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Public key for mysql-community-client-plugins-8.0.22-1.el7.x86_64.rpm is not installed
(1/2): mysql-community-client-plugins-8.0.22-1.el7.x86_64.rpm          | 235 kB  00:00:00     
Public key for mysql-connector-odbc-8.0.22-1.el7.x86_64.rpm is not installed
(2/2): mysql-connector-odbc-8.0.22-1.el7.x86_64.rpm                    | 4.1 MB  00:00:00     
----------------------------------------------------------------------------------------------
Total                                                          24 MB/s | 4.3 MB  00:00:00     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Importing GPG key 0x5072E1F5:
 Userid     : "MySQL Release Engineering <[email protected]>"
 Fingerprint: a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5
 Package    : mysql80-community-release-el7-3.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : mysql-community-client-plugins-8.0.22-1.el7.x86_64                         1/3 
  Updating   : mysql-connector-odbc-8.0.22-1.el7.x86_64                                   2/3 
Success: Usage count is 1
Success: Usage count is 1
  Cleanup    : mysql-connector-odbc-5.2.5-8.el7.x86_64                                    3/3 
  Verifying  : mysql-community-client-plugins-8.0.22-1.el7.x86_64                         1/3 
  Verifying  : mysql-connector-odbc-8.0.22-1.el7.x86_64                                   2/3 
  Verifying  : mysql-connector-odbc-5.2.5-8.el7.x86_64                                    3/3 

Dependency Installed:
  mysql-community-client-plugins.x86_64 0:8.0.22-1.el7                                        

Updated:
  mysql-connector-odbc.x86_64 0:8.0.22-1.el7                                                  

Complete!
  • 再度 install を実行してみると、以下のように既にインストール済で最新 ver. になっているよと表示される
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ty1.mirror.newmediaexpress.com
 * epel: nrt.edge.kernel.org
 * extras: ty1.mirror.newmediaexpress.com
 * updates: ty1.mirror.newmediaexpress.com
Package mysql-connector-odbc-8.0.22-1.el7.x86_64 already installed and latest version
Nothing to do

odbc.ini の設定

設定ファイルの設置

  • 以下 path に odbc.ini ファイルを設置
sudo vi /etc/odbc.ini

設定ファイルの中身

  • 中身は以下のように
    • libmyodbc8w.so の path が異なる場合は自身の環境に合わせて書き換えてください
    • 登録したいデータベースが複数ある場合、同じように記述を繰り返していくこと
/etc/odbc.ini
[ODBC Data Sources]
DataBase_1         = MyODBC 8.0 UNICODE Driver DSN
DataBase_2         = MyODBC 8.0 UNICODE Driver DSN

[DataBase_1]
Driver           = /usr/lib64/libmyodbc8w.so
SERVER           = xxx.xxx.xxx.xxx
PORT             = 3306
Database         = DataBase_1
OPTION           = 3
INTERACTIVE      = 1
BIG_PACKETS      = 1
NO_PROMPT        = 1
COMPRESSED_PROTO = 1
AUTO_RECONNECT   = 1
MULTI_STATEMENTS = 1

[DataBase_2]
Driver           = /usr/lib64/libmyodbc8w.so
SERVER           = xxx.xxx.xxx.xxx
PORT             = 3306
Database         = DataBase_2
OPTION           = 3
INTERACTIVE      = 1
BIG_PACKETS      = 1
NO_PROMPT        = 1
COMPRESSED_PROTO = 1
AUTO_RECONNECT   = 1
MULTI_STATEMENTS = 1
OPTION           = 3
INTERACTIVE      = 1
BIG_PACKETS      = 1
NO_PROMPT        = 1
COMPRESSED_PROTO = 1
AUTO_RECONNECT   = 1
MULTI_STATEMENTS = 1

FileMaker Server 再起動

  • 設定した内容を反映させるため
    • なお、この再起動の必要性は MySQL Connector をインストールした際におこなわれるべきものであって、odbc.ini ファイルの中身を書き換えるだけであれば、わざわざサービス再起動をおこなわなくても設定が反映されるもよう
    • ……つまり odbc.ini ファイルを中途半端に不正な状態で保存してしまうと、最悪 FileMaker Server / Pro がクラッシュするリスクもあり?🤔
sudo service fmshelper restart

接続確認

  • FileMaker Pro を起動して任意のファイルを開く
  • ファイル > 管理 > 外部データソース を選択

  • データソースの編集ウィンドウで タイプODBC にして DNS の右端にある 指定 ボタンを押したときに以下のようなウィンドウが表示されて odbc.ini に記述したとおりのリストが見られればヨシ!

  • ファイル > 管理 > データベース を選択して リレーションシップ タブでテーブルオカレンスを追加しようとする際に、以下のように ODBC データソースから選べるようになっているはずです

おわりに

感想

  • .ini ファイルをテキストで記述できるのは本当に楽で助かります
  • しかし Linux での MySQL ODBC Connector 8 に関連する情報は散逸していて一つにまとまっているところが見つからず、思った以上にまとめるのが大変だった!

参考リンク