解析MySQL Proxy Lua安裝配置
MySQL Proxy Lua安裝配置是本文要介紹的內(nèi)容,關(guān)于MySQL Proxy的二進(jìn)制版本的安裝相對(duì)簡(jiǎn)單,無(wú)需多言,下面介紹的是源代碼安裝:
安裝pkg-config:
- tar zxvf pkg-config-0.23.tar.gz
- cd pkg-config-0.23
- ./configure
- make
- make install
確保PKG_CONFIG_PATH環(huán)境變量包含了相關(guān)的pkg-config配置文件路徑:
- export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
安裝libevent:
- tar zxvf libevent-1.4.10-stable.tar.gz
- cd libevent-1.4.10-stable
- ./configure
- make
- make install
安裝glib:
- tar zxvf glib-2.20.0.tar.gz
- cd glib-2.20.0
- ./configure
- make
- make install
安裝lua:
- tar zxvf lua-5.1.4.tar.gz
- cd lua-5.1.4
如果你的服務(wù)器是64位的,這時(shí)要調(diào)整一下Makefile:vi src/Makefile,在CFLAGS里加上-fPIC,否則會(huì)出錯(cuò):
- /usr/bin/ld: /usr/local/lib/liblua.a(lapi.o):
- relocation R_X86_64_32 against `luaO_nilobject_' can not be used when making a shared object;
- recompile with -fPIC
- /usr/local/lib/liblua.a: could not read symbols: Bad value
接下來(lái)不用執(zhí)行常見(jiàn)的configure,直接make:
- make linux
- make install
安裝pkg-config配置文件,以便編譯MySQL Proxy時(shí)能找到lua:
- cp etc/lua.pc /usr/local/lib/pkgconfig/lua5.1.pc
如果沒(méi)有執(zhí)行此步驟的話(huà),在后面編譯安裝MySQL Proxy的時(shí)候,會(huì)得到類(lèi)似下面的錯(cuò)誤信息:
- Package lua5.1 was not found in the pkg-config search path.
- Perhaps you should add the directory containing `lua5.1.pc'
- to the PKG_CONFIG_PATH environment variable
- No package 'lua5.1' found
安裝mysql:
這里介紹的是完整安裝mysql,其實(shí)你只要安裝mysql開(kāi)發(fā)包即可。
- tar zxvf mysql-5.1.33.tar.gz
- cd tar zxvf mysql-5.1.33
- ./configure
- make
- make install
- cp support-files/mysql.server /etc/init.d/mysql
- chown +x /etc/init.d/mysql
- cp support-files/my-[small|medium|large|huge|innodb-heavy-4G].cnf /etc/my.cnf
如果my.cnf里有skip-federated選項(xiàng),就注釋它,否則安裝數(shù)據(jù)庫(kù)的時(shí)候會(huì)出現(xiàn)類(lèi)似下面的錯(cuò)誤:
- [ERROR] /usr/local/libexec/mysqld: unknown option '--skip-federated'
- /usr/local/bin/mysql_install_db --user=mysql
- /usr/local/bin/mysqld_safe --user=mysql &
保證系統(tǒng)能找到mysql_config,后面編譯MySQL Proxy會(huì)用到它:
- export PATH=$PATH:/usr/local/bin
還要保證系統(tǒng)能找到mysql庫(kù)文件:
vi /etc/ld.so.conf 加入/usr/local/lib目錄
執(zhí)行:/sbin/ldconfig /etc/ld.so.conf
安裝MySQL Proxy:
- tar zxvf MySQL Proxy-0.7.0.tar.gz
- cd MySQL Proxy-0.7.0
- ./configure
- make
- make install
按照官方介紹做好啟動(dòng)腳本/etc/init.d/MySQL Proxy和參數(shù)腳本/etc/sysconfig/MySQL Proxy,并設(shè)置:
- chmod +x /etc/init.d/MySQL Proxy
- chkconfig --add MySQL Proxy
搞定了,測(cè)試一下:/usr/local/sbin/MySQL Proxy -V。官方論壇里有很多討論,可以參閱。
注意:你的操作系統(tǒng)式32位還是64位
我在32位服務(wù)器上使用MySQL Proxy,感覺(jué)非常不穩(wěn)定,時(shí)不時(shí)出錯(cuò):
- Lost connection to server during query,MySQL server has gone away
此時(shí),MySQL Proxy進(jìn)程往往會(huì)掛掉,同時(shí)也會(huì)報(bào)類(lèi)似下面的錯(cuò)誤:
- network-mysqld-proxy.c.3318: COM_(0x03), packet 4 should not be (NULL|EOF), got: fffffffe
換到64位服務(wù)器后,穩(wěn)定性大大提高。所以如果想在產(chǎn)品環(huán)境上使用MySQL Proxy,強(qiáng)烈建議使用64位。
至于MySQL Proxy版本的選擇,***各個(gè)版本的MySQL Proxy都裝上試試看,不一定是版本越高越穩(wěn)定。如果把MySQL Proxy用于讀寫(xiě)分離目的的話(huà),以我自己的測(cè)試結(jié)果來(lái)看,目前最穩(wěn)定的版本是64位服務(wù)器下的0.6.X版本(和0.7.X比較),當(dāng)然,這個(gè)結(jié)論不一定適用于你,***自己實(shí)際動(dòng)手測(cè)試看看。
補(bǔ)充:官方網(wǎng)站好像只保留MySQL Proxy的***版本,如果需要?dú)v史版本的話(huà),可以去下載。
小結(jié):關(guān)于解析MySQL Proxy Lua安裝配置的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!