はじめに
業務でインターネットから隔離されたサーバーの環境構築をする際、gzファイルからmakeしてインストールする必要があったので、忘れないようにメモ。
前提
インストール先のOSは下記のとおり。
- RedHat Enterprise Linux 6 (x86, 64-bit)
インストールするソフトウェアは下記2つ。
unixODBCのインストール
ダウンロード
下記サイトにアクセスしてunixODBC-2.3.4.tar.gz
をダウンロードする。
http://www.unixodbc.org/
インストール
makeするために、一旦/usr/share/doc
に展開する。
cd /usr/share/doc
tar xvzf unixODBC-2.3.4.tar.gz
展開先へ移動して、make⇒インストール。
cd /usr/share/doc/unixODBC-2.3.4
./configure
make
make install
デフォルトのインストール先は/usr/local
になっているので注意。
変更したい場合は、./configure --prefix=/usr/local/unixODBC
とかで設定する。
いきなりmake install
するのが怖い場合はmake -n install
とすると、実際にインストールはせず、インストール時の出力内容を確認できる。
MySQL Connector/ODBCのインストール
ダウンロード
下記サイトにアクセスする。
http://dev.mysql.com/downloads/connector/odbc/
「Select Platform:」で「RedHat Enterprise Linux / Oracle Linux」を選択する。
下記のファイルをダウンロードする。
Red Hat Enterprise Linux 6 / Oracle Linux 6 (x86, 64-bit)
Compressed TAR Archive
(mysql-connector-odbc-5.3.6-linux-el6-x86-64bit.tar.gz)
インストール⇒問題発生
下記ドキュメントに従ってインストールを実施する。
4.2.2 Installing Connector/ODBC from a Binary Tarball Distribution
まずは展開する。
tar xvzf mysql-connector-odbc-5.3.6-linux-el6-x86-64bit.tar.gz
展開の結果、bin
とlib
のディレクトリが生成されるので、必要なファイルをコピーする。
cp bin/* /usr/local/bin
cp lib/* /usr/local/lib
インストーラを実行して、Unicodeのドライバーを導入する。(ANSIのドライバーもあるらしいが、公式のドキュメントに譲る)
myodbc-installer -a -d -n "MySQL ODBC 5.3 Driver" -t "Driver=/usr/local/lib/libmyodbc5w.so"
【問題発生】
ここでエラーが出た。エラー内容は下記のとおり。
(前略): error while loading shared libraries: ****.so: cannot open shared object file: No such file or directory
原因調査
下記記事によると、どうやら共有ライブラリが見つからないらしい。
動的ライブラリ・共有ライブラリのリンクミスへの対応
ldd myodbc-installer
で足りないライブラリを確認してみると、下記2つのライブラリが見つからない。
- libodbc.so.2
- libodbcinst.so.2
もしやと思い、unixODBCのインストールとともに導入された/usr/local/lib
を確認すると、無事発見できた。
パスを通して、再度インストール
先ほどのディレクトリにパスを通して、再度mysql-installer
を実行する。
LD_LIBRARY_PATH=/usr/local/lib; export LD_LIBRARY_PATH
myodbc-installer -a -d -n "MySQL ODBC 5.3 Driver" -t "Driver=/usr/local/lib/libmyodbc5w.so"
公式ドキュメントにのっとり、導入されたことを確認して完了。
myodbc-installer -d -l