この記事は MySQL Fabric&Routerつらくない Advent Calendar 2015 の2日目です。
昨日 はしゃらっと流したcmakeした時のエラーについていくつか。
しかもエラーメッセージに含んでるディレクトリー群がlib系のディレクトリーだから憎い つらくない。
コールスタック出すから必須なのかと思ったけど、よく見たら"CMake Warning"だった。
MySQL Community Serverは/usr/local/mysqlが全てのベースになってたけど、フツーのアプリケーションっぽく配置される。
* ライブラリー: /usr/local/lib
* ヘッダーファイル: /usr/local/include
* コンフィグ: /usr/local/etc
* ログとか: /var/local/mysqlrouter
うーん、/var/local/mysqlrouterは新しい。rpmだとどうなってるんだろ。
MySQL :: Download MySQL Router
* まず、rpmは"Red Hat Enterprise Linux 7 / Oracle Linux 7"向けしかない。
* バイナリーの.tar.gzも"Linux - Generic (glibc 2.17)"なので、CentOS 6.xで動かすにはglibcを更新しないといけない。
* というか、RHEL 7系用のMySQL Toolsリポジトリー(Workbenchとか入ってるとこ)の中にはmysql-routerがある。6系用のリポジトリーにはない。
ビルドしたやつはちゃんと動くけど、.tar.gzを解凍したやつはもちろん動かない。
うう、CentOS 7なマシンが欲しいよう。
PlanetMySQL Voting: Vote UP / Vote DOWN
昨日 はしゃらっと流したcmakeした時のエラーについていくつか。
Could not find MySQL librariesと言われるけど、mysql-community-libsだけじゃなくてmysql-community-develも要求してくる
$ rpm -q mysql-community-libs
mysql-community-libs-5.7.9-1.el6.x86_64
$ cmake .
..
CMake Error at cmake/FindMySQL.cmake:105 (message):
Could not find MySQL libraries; used
/root/mysql-router-2.0.2/../mysql-server/lib;/usr/local/mysql/lib;/usr/local/mysql/lib;/usr/local/lib;/usr/lib/x86_64-linux-gnu;/usr/lib/i386-linux-gnu;/usr/lib64;/usr/lib
..
$ sudo yum install -y mysql-community-devel
$ cmake .
..
-- Found MySQL Libraries 5.7.9; using /usr/lib64/mysql/libmysqlclient.so
..
しかもエラーメッセージに含んでるディレクトリー群がlib系のディレクトリーだから
Doxygenはなくても動く
$ cmake .
..
CMake Warning at mysql_harness/cmake/Docs.cmake:27 (message):
Doxygen not found, no documentation target will be created
..
コールスタック出すから必須なのかと思ったけど、よく見たら"CMake Warning"だった。
デフォルトではインストールされるディレクトリがMySQLっぽくない
$ sudo make install
..
-- Install configuration: ""
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/config_parser.h
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/plugin.h
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/filesystem.h
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/loader.h
-- Up-to-date: /usr/local/lib/libmysqlharness.a
-- Up-to-date: /usr/local/lib/libmysqlharness.so.0
-- Up-to-date: /usr/local/lib/libmysqlharness.so
-- Up-to-date: /usr/local/lib/mysqlrouter/logger.so
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/logger.h
-- Up-to-date: /usr/local/lib/mysqlrouter/keepalive.so
-- Up-to-date: /usr/local/lib/mysqlrouter/fabric_cache.so
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/fabric_cache.h
-- Up-to-date: /usr/local/lib/mysqlrouter/routing.so
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/routing.h
-- Up-to-date: /usr/local/share/doc/mysqlrouter/README.txt
-- Up-to-date: /usr/local/share/doc/mysqlrouter/License.txt
-- Up-to-date: /usr/local/share/doc/mysqlrouter/sample_mysqlrouter.ini
-- Up-to-date: /usr/local/share/doc/mysqlrouter/sample_mysqlrouter.init
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/datatypes.h
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/utils.h
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/plugin_config.h
-- Installing: //var
-- Installing: //var/local
-- Installing: //var/local/mysqlrouter
-- Installing: //var/local/mysqlrouter/log
-- Installing: //var
-- Installing: //var/local
-- Installing: //var/local/mysqlrouter
-- Installing: //var/local/mysqlrouter/run
-- Installing: /usr/local/etc
-- Installing: /usr/local/etc/mysqlrouter
-- Up-to-date: /usr/local/bin/mysqlrouter
-- Up-to-date: /usr/local/lib/libmysqlrouter.so.1
-- Up-to-date: /usr/local/lib/libmysqlrouter.so
MySQL Community Serverは/usr/local/mysqlが全てのベースになってたけど、フツーのアプリケーションっぽく配置される。
* ライブラリー: /usr/local/lib
* ヘッダーファイル: /usr/local/include
* コンフィグ: /usr/local/etc
* ログとか: /var/local/mysqlrouter
うーん、/var/local/mysqlrouterは新しい。rpmだとどうなってるんだろ。
基本的にCentOS(なり、RHEL系は)7向け
MySQL :: Download MySQL Router
* まず、rpmは"Red Hat Enterprise Linux 7 / Oracle Linux 7"向けしかない。
* バイナリーの.tar.gzも"Linux - Generic (glibc 2.17)"なので、CentOS 6.xで動かすにはglibcを更新しないといけない。
* というか、RHEL 7系用のMySQL Toolsリポジトリー(Workbenchとか入ってるとこ)の中にはmysql-routerがある。6系用のリポジトリーにはない。
$ curl -s http://repo.mysql.com/yum/mysql-tools-community/el/7/x86_64 | grep routermysql-router-2.0.2-1.el7.x86_6..> 23-Oct-2015 06:36 1.0M
mysql-router-debuginfo-2.0.2-1..> 23-Oct-2015 06:36 2.4M
$ curl -s http://repo.mysql.com/yum/mysql-tools-community/el/6/x86_64 | grep router
ビルドしたやつはちゃんと動くけど、.tar.gzを解凍したやつはもちろん動かない。
$ wget http://dev.mysql.com/get/Downloads/MySQL-Router/mysql-router-2.0.2-linux-glibc2.17-x86-64bit.tar.gz
$ tar xf mysql-router-2.0.2-linux-glibc2.17-x86-64bit.tar.gz
$ cd mysql-router-2.0.2-linux-glibc2.17-x86-64bit
$ bin/mysqlrouter
bin/mysqlrouter: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /root/mysql-router-2.0.2-linux-glibc2.17-x86-64bit/bin/../lib/libmysqlrouter.so.1)
bin/mysqlrouter: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /root/mysql-router-2.0.2-linux-glibc2.17-x86-64bit/bin/../lib/libmysqlrouter.so.1)
bin/mysqlrouter: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /root/mysql-router-2.0.2-linux-glibc2.17-x86-64bit/bin/../lib/libmysqlrouter.so.1)
bin/mysqlrouter: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /root/mysql-router-2.0.2-linux-glibc2.17-x86-64bit/bin/../lib/libmysqlharness.so.0)
bin/mysqlrouter: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /root/mysql-router-2.0.2-linux-glibc2.17-x86-64bit/bin/../lib/libmysqlharness.so.0)
うう、CentOS 7なマシンが欲しいよう。
PlanetMySQL Voting: Vote UP / Vote DOWN