本文主要介紹中間件atlas源碼編譯安裝,由於rpm安裝的atlas程序調用時返回的mysql版本爲5.0,相應使用低版本的驅動造成時間類型的字段無法支持毫秒級別。
由於需要glib版本要大於2.32以上,centos6系統自帶的glib版本爲2.28,因此需要重新編譯安裝2.32以上的glib,這裏安裝2.34版本的glib需要依賴pcre大於8.31。
一、編譯安裝pcre8.35
# tar xf pcre-8.35.tar.gz # cd pcre-8.35 # ./configure --prefix=/usr/local/glib--with-pcre=/usr/local/pcre/
二、編譯安裝glib-2.34.3.tar.xz
# tar xf glib-2.34.3.tar.xz # cd glib-2.34.3 #./configure --prefix=/usr/local/glib --with-pcre=/usr/local/pcre/
三、編譯安裝Atlas-2.2.1.tar.gz
1.解決依賴關係
# yum install libffi-devel lua-devel libeventlibevent-devel
2.修改源碼中mysql版本代碼,這裏mysql版本爲5.6.17
找到plugins/proxy/proxy-plugin.c文件 修改1974行:challenge->server_version_str =g_strdup("5.0.81-log"); 爲:challenge->server_version_str= g_strdup("5.6.17-log"); 修改1974行:challenge->server_version = 50081; 爲challenge->server_version= 50617;
3.安裝atlas
# tar xf Atlas-2.2.1.tar.gz # cd Atlas-2.2.1 # exportPKG_CONFIG_PATH=/usr/local/glib/lib/pkgconfig # ./configure --with-mysql=/usr/local/mysql5.6/bin/mysql_config--prefix=/usr/local/mysql-proxy LDFLAGS="-lcrypto" # make && make install 或者修改bootstrap.sh #!/bin/sh base=$(cd "$(dirname "$0")"; pwd) cd $base PKG_CONFIG_PATH=/usr/local/glib/lib/pkgconfig ./configure --with-mysql=/usr/local/mysql/bin/mysql_config --prefix=/usr/local/mysql-proxy CPPFLAGS="-I/usr/local/mysql/include/" LDFLAGS="-L/usr/local/mysql/lib/ -lm -ldl -lcrypto" LUA_CFLAGS="-I/usr/include/" LUA_LIBS="-L/usr/lib64 -llua" 執行 # ./bootstrap.sh # make && make install 注意:以上相關程序的頭文件和庫文件根據自己的環境修改相應的路徑
四、啓動atlas
# /usr/local/mysql-proxy/bin/mysql-proxyd test start
報錯
2016-08-0518:05:26: (critical) loading module '/usr/local/mysql-proxy/lib/mysql-proxy/plugins/libproxy.so'failed: libmy
sqlclient.so.18:cannot open shared object file: No such file or directory
2016-08-0518:05:26: (critical) setting --plugin-dir=<dir> might help
2016-08-0518:05:26: (message) Initiating shutdown, requested from mysql-proxy-cli.c:441
2016-08-0518:05:26: (message) shutting down normally, exit code is: 1
解決,導入mysql的庫文件到系統
# echo '/usr/local/mysql/lib/' >> /etc/ld.so.conf # ldconfig
五、atlas升級替換
1.確保待升級的atlas主機操作系統與編譯軟件的操作系統版本一致
連同編譯安裝的glib一併部署,同時需要安裝依賴關係libffi-devel lua-devel libevent libevent-devel