首先需要確保mysql 的主從同步成功。
CentOS 系統可以通過以下命令安裝依賴包:
yum install cmake gcc glib2-devel flex mysql-devel gperftools-libs zlib-devel -y
克隆獲取原始碼:
git clone https://github.com/Lede-inc/cetus.git
建立編譯目錄:在原始碼主目錄下建立獨立的目錄build,並轉到該目錄下:
cd cetus/
mkdir build/
cd build/
###編譯:利用cmake進行編譯,指令如下:
讀寫分離版本:
CFLAGS=’-g -Wpointer-to-int-cast’ cmake ../ -DCMAKE_BUILD_TYPE=Debug ->DCMAKE_INSTALL_PREFIX=/home/user/cetus_install -DSIMPLE_PARSER=ON
安裝:執行make install進行安裝:
make install
如果提示缺少什麼.20檔案,就需要建立相應的軟連線到指定目錄下
配置:Cetus執行前還需要編輯配置檔案
d /home/user/cetus_install/conf/
cp XXX.json.example XXX.json
cp XXX.conf.example XXX.conf
vi XXX.json
vi XXX.conf
配置proxy.conf
proxy-address = 0.0.0.0:6001 //代理地址埠
proxy-backend-addresses=127.0.0.1:3306 //代理後臺地址 即 讀寫分離主機地址
proxy-read-only-backend-addresses=114.55.106.24:3306 //代理只讀後臺地址 即 讀寫分離從機地址
admin-address=0.0.0.0:7001 後臺命令列 登入地址埠
[cetus]
# For mode-switch
daemon = true
# Loaded Plugins
plugins=proxy,admin
# Defines the number of worker processes.
worker-processes=1
# Proxy Configuration, For example: MySQL master and salve host ip are both 192.0.0.1
proxy-address=0.0.0.0:6001
proxy-backend-addresses=127.0.0.1:3306
proxy-read-only-backend-addresses=114.55.106.24:3306
# Admin Configuration
admin-address=0.0.0.0:7001
admin-username=admin
admin-password=admin
# Backend Configuration, use test db and username created
default-db=xcd_p_fg_test
default-username=dbadmin
default-pool-size=100
max-resp-size=10485760
long-query-time=100
# File and Log Configuration, put log in /data and marked by proxy port, /data/cetus needs to be created manually and has rw authority for cetus os user
max-open-files = 65536
pid-file = cetus6001.pid
plugin-dir=lib/cetus/plugins
log-file=/data/cetus/cetus_6001.log
log-level=debug
# Check salve delay
disable-threads=false
check-slave-delay=true
slave-delay-down=5
slave-delay-recover=1
# For trouble
keepalive=true
verbose-shutdown=true
log-backtrace-on-crash=true
# For performance
enable-tcp-stream=true
enable-fast-stream=true
# For MGR
group-replication-mode=0
配置users.json
user 此為登入資料庫使用者名稱 主從同步中的主從資料庫使用者名稱需要一致。
client_pwd cetus客戶端登入密碼 最後和server_pwd 設定一致,避免其他問題。
server_pwd 此為登入資料庫密碼 主從同步中的主從資料庫密碼需要一致。
{
"users": [{
"user": "***",
"client_pwd": "***",
"server_pwd": "***"
}]
}
建立心跳庫心跳錶 並保證可以實現主從同步
create database proxy_heart_beat;use proxy_heart_beat;
CREATE TABLE `tb_heartbeat` (
`p_id` varchar(128) NOT NULL,
`p_ts` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (`p_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
啟動資料庫
chmod 0660 proxy.conf //必須要設定下許可權,不然無法執行
cd .. // 退到上一級目錄
bin/cetus –defaults-file=conf/proxy.conf [–conf-dir=/home/user/cetus_install/conf/] //執行命令
檢視狀態 檢視配置的6001和7001 埠是否開啟
netstat -ntlp
檢視日誌 檢視主從伺服器是否都啟動成功
cd /data/cetus/
vi cetus_6001.log
嘗試客戶端連線 使用navcat連線 IP 埠 6001 使用者密碼為users.json配置
開啟mysql 查詢日誌設定:主從都要設定
set global general_log =on;
set global log_output=’table’;設定日誌輸出方式為表
select * from mysql.general_log 檢視操作日誌
驗證是否實現讀寫分離 在主庫實現update ,主從都將會有update日誌,select 日誌 只會出現在從伺服器。
本作品採用《CC 協議》,轉載必須註明作者和本文連結