RHEL5u3環境下編譯安裝MySQL Proxy 0.8.1
MySQL Proxy是一個通過MySQL網路協議,提供MySQL伺服器與客戶端之間連線的應用工具,所有MySQL相容的客戶端(包括mysql命令列,呼叫mysql命令列的類庫,以及支援MySQL網路協議的應用)均無需任何修改即可直接連線Mysql Proxy。
本文記錄ENTERPRISE LINUX5u3版本下原始碼編譯安裝MySQL Proxy 0.8的步驟。
1、安裝依賴包
原始碼編譯方式安裝MySQL Proxy前,下列依賴包必須首先安裝:
- libevent 1.x or higher (1.3b or later is preferred)
- lua 5.1.x or higher
- glib2 2.16.0 or higher (官方文件說是2.6.0或更高,實際安裝時,mysql-proxy 0.8版本時提示不能低於2.16.0的)
- pkg-config
- libtool 1.5 or higher
- MySQL 5.0.x or higher developer files
A>. 安裝libevent
RHEL5.3版本自帶的libevent版本較低,為1.1版,不符合需求,直接下載更高版本安裝,操作步驟如下:
# wget http://monkey.org/~provos/libevent-1.4.14b-stable.tar.gz
# tar xvfz libevent-1.4.14b-stable.tar.gz
# cd libevent-1.4.14b-stable
# ./configure --prefix=/usr/local/libevent-1.4
# make && make installB>. 安裝lua指令碼語言包
Lua是一個極輕量級的指令碼語言,MySQL Proxy通過該語言進行功能擴充。
首先到其官網下載最新版本5.1.4,而後解壓安裝,依次執行命令如下:
# wget http://www.lua.org/ftp/lua-5.1.4.tar.gz
# tar xvfz lua-5.1.4.tar.gz
# cd lua-5.1.4
# vi Makefile修改MakeFile檔案,將:
- INSTALL_TOP= /usr/local
修改為:
- INSTALL_TOP= /usr/local/lua
這樣做的目的,是為了將lua相關的檔案放在同一目錄內,便於查詢和應用。
Lua的編譯和安裝詳見目錄內的INSTALL檔案,三思這裡是在linux下安裝,直接執行下列命令即能完成編譯和安裝:
- # make linux install
C>. 安裝glib2
官方文件說是需要2.6.0或更高版本,實際在安裝mysql-proxy 0.8時,提示glib2的版本不能低於2.16.0,這裡為了後面安裝程式順利執行,首先升級系統的glib2,步驟如下。
# wget http://ftp.gnome.org/pub/gnome/sources/glib/2.22/glib-2.22.5.tar.gz
# tar xvfz glib-2.22.5.tar.gz
# cd glib-2.22.5
# ./configure --prefix=/usr/local/glib-2.2
# make && make installD>. 安裝MySQL開發包
主要需要用到mysql_config等應用,mysql的開發包可以直接到其官網下載:http://dev.mysql.com/downloads/mysql/5.1.html
Rpm包的安裝比較簡單,執行命令如下:
- # rpm -ivh MySQL-devel-community-5.1.51-1.rhel5.x86_64.rpm
2、安裝MySQL Proxy
接下來,終於輪到正主上場,三思這裡安裝的是MySQL Proxy 0.8.1版本,也可以直接到其官網下載:http://dev.mysql.com/downloads/mysql-proxy/
# tar xvfz mysql-proxy-0.8.1.tar.gz
# cd mysql-proxy-0.8.1
# ./configure LDFLAGS="-lm -ldl" LUA_CFLAGS="/usr/local/lua/bin/lua -I/usr/local/lua/include" LUA_LIBS="/usr/local/lua/lib -llua" --prefix=/usr/local/mysql-proxy --with-lua
# make
# make install安裝成功後,執行mysql-proxy命令驗證:
[root@rhel5u3 mysql-proxy]# /usr/local/mysql-proxy/bin/mysql-proxy -V
mysql-proxy 0.8.1
chassis: mysql-proxy 0.8.1
glib2: 2.22.5
libevent: 1.4.14b-stable
LUA: Lua 5.1.4
package.path: /usr/local/mysql-proxy/lib/mysql-proxy/lua/?.lua
package.cpath: /usr/local/mysql-proxy/lib/mysql-proxy/lua/?.so
-- modules
admin: 0.8.1
proxy: 0.8.1編譯過程看起來簡單,僅只是幾條命令,但就是這個安裝頗不順利,折騰了三思整整一天時間,也許是我運氣不好,當然更多應該還是水平有限,實際執行編譯的過程中遇到了很多錯誤,錯誤資訊及解決方案見下,希望對同樣遇到該問題的同學有所幫助:
作業系統版本如下:
[root@rhel5u3 ~]# cat /etc/issue
Enterprise Linux Enterprise Linux Server release 5.3 (Carthage)
Kernel \r on an \m錯誤1:
checking for LUA... no
... checked for Lua via pkg-config: No package 'lua' found. retrying with lua5.1看錯誤資訊是說找不到lua包。
解決方案:A>. 引數1.2步驟中所示,編譯安裝lua;
B>. 設定環境變數:
export LUA_CFLAGS="-I/usr/local/lua/include"
export LUA_LIBS="-L/usr/local/lua/lib -llua -ldl"注意變數中的路徑應為lua實際安裝路徑,而後重新執行configure配置編譯程式。
如果執行上述操作故障依舊,可以嘗試將lua安裝路徑下的etc/lua.pc檔案複製到glib2安裝路徑中的lib/pkgconfig/資料夾內。
錯誤2:
checking for GLIB... configure: error: Package requirements (glib-2.0 >= 2.16.0) were not met:
Requested 'glib-2.0 >= 2.16.0' but version of GLib is 2.12.3說明預設識別到的glib2版本不正確。
解決方案:
A>. 參照1.3步驟所示,編譯安裝適當版的glib;
B>. 設定環境變數:
export GLIB_CFLAGS="-I/usr/local/glib-2.2/include/glib-2.0"
export GLIB_LIBS="-L/usr/local/glib-2.2/lib/glib-2.0"
export GMODULE_CFLAGS="-I/usr/local/glib-2.2/include"
export GMODULE_LIBS="-L/usr/local/glib-2.2/lib"
export GTHREAD_CFLAGS="-I/usr/local/glib-2.2/include"
export GTHREAD_LIBS="-L/usr/local/glib-2.2/lib"特別強調,GMODULE和GTHREAD的相關變數必須設定,否則會遇到(gmodule-2.0 >= 2.16.0) were not met或(gthread-2.0 >= 2.16.0) were not met之類錯誤。
變數值中的路徑應為glib2的實際安裝路徑,而後重新執行configure配置編譯程式。
錯誤3:
checking for event_init in -levent... no
configure: error: libevent is required沒有找到libevent依賴包。
解決方案:
A>. 參照1.1步驟中所示,編譯安裝libevent。
B>. 設定環境變數:
- export LDFLAGS="-L/usr/local/libevent-1.4/lib -lm"
而後重新執行configure配置編譯程式
錯誤4:
- /usr/local/lua/lib/liblua.a: could not read symbols: Bad value
看起來是lua呼叫出錯,相關文件提示是提示:64bit環境可能遇到該現象。
解決方案:
A>. 編輯lua的src/MakeFile檔案,修改下列引數:
- CFLAGS= -O2 -Wall $(MYCFLAGS)
修改為:
- CFLAGS= -O2 -Wall -fPIC $(MYCFLAGS)
B>. 按照1.2步驟中所示,編譯安裝lua。如果之前已經編譯過,記得要執行make clean清除已編譯配置。
錯誤5:
- /usr/local/glib-2.22/include/glib-2.0/glib/gtypes.h:34:24: error: glibconfig.h: No such file or directory
解決方案:
- # cp /usr/local/glib-2.2/lib/glib-2.0/include/glibconfig.h /usr/local/glib-2.2/include/glib-2.0/
而後重新執行編譯。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-687627/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 環境下編譯安裝 RedisLinux編譯Redis
- CentOS 7.4 環境下原始碼編譯(多例項)安裝 Mysql 5.7.26CentOS原始碼編譯MySql
- Debian9 (Stretch) 下編譯安裝 LNMP 環境編譯LNMP
- Debian9(Stretch) 下編譯安裝LNMP環境編譯LNMP
- 【MySQL安裝】Linux下安裝MySQL(預編譯)MySqlLinux編譯
- CPP編譯器安裝(Windows環境)編譯Windows
- CentOS 7.4 環境下原始碼編譯安裝 postgreSQL 11.4CentOS原始碼編譯SQL
- Docker環境下編譯安裝PHP7.1.4 Nginx1.12.0Docker編譯PHPNginx
- Linux環境PostGIS原始碼編譯安裝Linux原始碼編譯
- centos7環境下二進位制編譯安裝ffmpegCentOS編譯
- CentOS6.9原始碼編譯安裝nginx+php7+mysql環境CentOS原始碼編譯NginxPHPMySql
- Linux 開發環境 -- C/C++開發環境編譯安裝Linux開發環境C++編譯
- Linux環境下, 原始碼編譯安裝詳解 (編譯CMake 3.15 和 gcc 5.3.0 為例)Linux原始碼編譯GC
- Linux環境下透過docker安裝mysqlLinuxDockerMySql
- [環境搭建] 透過原始碼編譯安裝 Redis原始碼編譯Redis
- JDK20安裝+環境配置+編譯執行JDK編譯
- 1.8LNMP環境編譯安裝php-5.6.14LNMP編譯PHP
- php環境篇:linux編譯安裝nginx1.13.2PHPLinux編譯Nginx
- Centos 7.6 下Mysql8.0.16編譯安裝CentOSMySql編譯
- Windows 環境下 Python 環境安裝WindowsPython
- VLC在ubuntu環境下編譯編譯
- Linux環境下MySQL安裝部署操作步驟LinuxMySql
- win10環境下fortran怎麼編譯_win10環境下fortran如何編譯Win10編譯
- linux環境安裝——mysql安裝複習LinuxMySql
- WIN10x64系統安裝AliOSThings編譯環境Win10iOS編譯
- openEuler arm 環境原始碼編譯mysql 8.0.37原始碼編譯MySql
- Linux下Java環境安裝LinuxJava
- Windows環境下安裝RabbitMQWindowsMQ
- Windows 環境下安裝 RedisWindowsRedis
- Windows 環境下安裝 LaravelWindowsLaravel
- kali環境下安裝dvwa
- Linux環境下安裝NginxLinuxNginx
- Linux下安裝Go環境LinuxGo
- Mac環境下安裝PodMac
- docker環境下安裝tensorflowDocker
- linux環境下redis安裝LinuxRedis
- Windows環境下安裝LinuxWindowsLinux
- Windows環境下安裝NexusWindows
- windows環境安裝mysql-8.0.3WindowsMySql