1. dbproxy安裝
1.1 安裝依賴項
centos
yum install -y percona-server-devel-55.x86_64 percona-server-client-55.x86_64 percona-server-shared-55 jemalloc jemalloc-devel libevent libevent-devel openssl openssl-devel lua lua-devel bison flex libtool.x86_64
ubuntu & debian
apt-get install libmysqlclient-dev libgcrypt11-dev pkg-config lua5.1-0 liblua5.1-0-dev libtool flex bison openssl libssl-dev libjemalloc1 libjemalloc-dev libevent-dev
cd glib-2.42.0
autoreconf -ivf
./configure
make && make install
注意作業系統版本:centos6.5 centos7 ubuntu14.04 debian8.2;
1.2安裝dbproxy原始碼
git clone [email protected]:meituan-dianping/dbproxy.git
編譯原始碼並安裝
sh autogen.sh
sh bootstrap.sh
make && make install
2. 部署
2.1 配置檔案的配置
成功安裝dbproxy之後,需要在安裝目錄下建立配置檔案所在的資料夾,例如取名conf,預設安裝路徑:
/usr/local/mysql-proxy
拷貝配置檔案及其目錄:
mkdir /usr/local/mysql-proxy/conf # 建立配置檔案所在資料夾
cp script/source.cnf.samples /usr/local/mysql-proxy/conf/source.cnf #拷貝示例配置檔案
下面列出了配置檔案的乙個子集,以部署一主一從為例,主庫:1.1.1.1:3306 從庫:1.1.1.2:3306;dbproxy的admin和後端mysql的使用者名稱和密碼均為guest,uqmoy9a=是guest加密之後的結果。
[mysql-proxy]
#管理介面的使用者名稱
admin-username=guest
#管理介面的密碼
admin-password=guest
#使用者名稱與其對應的加密過的mysql密碼,密碼需要進行加密!
pwds=guest:uqmoy9a=
#dbproxy監聽的管理介面ip和埠
admin-address=0.0.0.0:3308
#dbproxy監聽的工作介面ip和埠
proxy-address=0.0.0.0:3307
#dbproxy後端連線的mysql主庫的ip和埠,可設定多項,用逗號分隔 如果不配置則預設127.0.0.1:3306
proxy-backend-addresses=1.1.1.1:3306
#dbproxy後端連線的mysql從庫的ip和埠,@後面的數字代表權重,用來作負載均衡,若省略則預設為1,可設定多項,用逗號分隔
proxy-read-only-backend-addresses=1.1.1.2:3306
#工作執行緒數,對dbproxy的效能有很大影響,可根據情況適當設定,預設為1
event-threads=8
#例項名稱,用於同一臺機器上多個dbproxy例項間的區分
instance=source
##日誌存放的路徑
log-path=/opt/tmp/dbproxy_log/
特別注意
配置檔案中配置的「pwds=guest:uqmoy9a=」項中的密碼是加密後的密碼,加密方法:
./dbproxy/script/encrypt [原始密碼]
2.2啟動dbproxy
在安裝目錄下的bin/mysql-proxy進行啟動,啟動時需傳入配置檔案的路徑。例如:預設安裝的路徑為:/usr/local/mysql-proxy,配置檔案路徑為:/usr/local/mysql-proxy/conf/source.cnf,且配置檔案中配置了必須配置的引數,啟動命令如下:
/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/source.cnf
3 連線dbproxy
3.1 dbproxy的埠介紹
dbproxy 對外暴露兩類埠:admin埠和proxy埠。admin埠是用來管理dbproxy的,管理員可以連線dbproxy的管理埠對dbproxy當前狀態、引數進行檢視和設定;proxy埠是用來與資料庫進行互動的,應用端連線該埠,可與後台資料庫進行互動。
3.2連線admin埠
檢視配置檔案中admin埠配置(賬號密碼埠號)
#管理介面的使用者名稱
admin-username=guest
#管理介面的密碼
admin-password=guest
#dbproxy監聽的管理介面ip和埠
admin-address=0.0.0.0:3308
連線(與連線mysql的命令一樣)
mysql -uguest -pguest -p3308 -h127.0.0.1
管理dbproxy
登入dbproxy的admin埠後,可以使用所提供的命令對dbproxy進行管理,檢視dbproxy所提供的命令可使用:
select * from help;
3.3連線proxy埠
檢視配置檔案中proxy埠配置(賬號密碼埠號)
#使用者名稱與其對應的加密過的mysql密碼,密碼需要進行加密!
pwds=guest:uqmoy9a=
#dbproxy監聽的工作介面ip和埠
proxy-address=0.0.0.0:3307
連線(與連線mysql的命令一樣)
mysql -uguest -pguest -p3307 -h127.0.0.1
傳送sql語句
連線proxy埠之後,便可以正常傳送dbproxy相容的sql語句了,例如:
use dbproxy_test;
select * from dbproxy_function_test;
常見錯誤
configure:error: package requirements (libffi >= 3.0.0) were not met
解決辦法:
yum install libffi-devel -y
no package 'glib-2.0' found
解決辦法:
yum install libgnomeui-devel
Boost Graph Library 快速入門
boost graph library 快速入門 by 燕飛龍 南亮亮 採用boost中的鄰接鍊錶 adjacency list 實現圖的定義 下面是乙個鄰接鍊錶定義的例子 include 首先定義圖中節點和邊的屬性 struct vertexproperty structedgeproperty ...
Expression Blend 介面快速入門
在開始使用blend前,首先需要進行silverlight的開發環境搭建,在銀光中國網 silverlightchina.net 有篇 輕鬆建立silverlight開發環境 其中列出了建立silverlight開發環境的幾個步驟,另外,我在過去發布過一篇 silverlight開發工具集合 文章,...
tmux命令啟動MySQL tmux 快速入門
為什麼要用 tmux 如果你對 tmux 的疑問還停留在 我可以開多個 terminal 的 tab 啊,為什麼要用 tmux 呢?那我只能呵呵了。tmux 的強大之處在於 可以連線本地或遠端的 sessions 強大的 window 和 pane 管理 在不同的 session 之間移動 wind...