mysql proxy搭建讀寫分離
阿新 • • 發佈:2018-11-16
rhel 6.10
主伺服器 : 192.168.2.121 rac01
從伺服器 : 192.168.2.122 rac02
排程伺服器: 192.168.2.123 rac03
--建立目錄,建立使用者
mkdir -p /mysql
groupadd mysql
useradd mysql -g mysql
-- 安裝mysql
./mysql_install_db --basedir=/mysql/mysql3306 --datadir=/mysql/mysql3306/data --user=mysql ./mysql_install_db --basedir=/mysql/mysql3307 --datadir=/mysql/mysql3307/data --user=mysql
-- 啟動mysql
./mysqld_safe --defaults-file=/mysql/mysql3306/my.cnf --user=mysql &
./mysqld_safe --defaults-file=/mysql/mysql3307/my.cnf --user=mysql &
-- 連線mysql
./mysql --socket=/mysql/mysql3306/mysql.sock
./mysql --socket=/mysql/mysql3307/mysql.sock
-- 關閉mysql
./mysqladmin -uroot -p --socket=/mysql/mysql3306/mysql.sock shutdown ./mysqladmin -uroot -p --socket=/mysql/mysql3307/mysql.sock shutdown
--配置主從
vi Master my.cnf
server-id=1
log-bin=mysql3306-bin
binlog-ignore-db = mysql,information_schema
vi slave my.cnf
server-id=2
-- 主伺服器上建立複製帳號,並授權
GRANT REPLICATION SLAVE ON *.* to 'rep1'@'%' identified by 'mysql'; show master status; mysql> show master status; +----------------------+----------+--------------+--------------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +----------------------+----------+--------------+--------------------------+-------------------+ | mysql3306-bin.000001 | 318 | | mysql,information_schema | | +----------------------+----------+--------------+--------------------------+-------------------+ 1 row in set (0.00 sec) mysql>
-- 配置從庫
change master to
master_host='192.168.2.121',
master_user='rep1',
master_password='mysql',
master_log_file='mysql3306-bin.000001',
master_log_pos=318
start slave
-- 配置mysql proxy
cd mysql-proxy
mkdir lua
mkdir logs
cp /mysql/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua ./lua
cp /mysql/mysql-proxy/share/doc/mysql-proxy/admin-sql.lua ./lua
vi /mysql/mysql-proxy/mysql-proxy.cnf
[mysql-proxy]
user=root
admin-username=proxy
admin-password=mysql
proxy-address=192.168.2.123
proxy-read-only-backend-addresses=192.168.2.122
proxy-backend-addresses=192.168.2.121
proxy-lua-script=/mysql/mysql-proxy/lua/rw-splitting.lua
admin-lua-script=/mysql/mysql-proxy/lua/admin-sql.lua
log-file=/mysql/mysql-proxy/logs/mysql-proxy.log
log-level=info
daemon=true
keepalive=true
-- 修改讀寫分離指令碼
vi /mysql/mysql-proxy/lua/rw-splitting.lua
if not proxy.global.config.rwsplit then
proxy.global.config.rwsplit = {
min_idle_connections = 1,
max_idle_connections = 1,
is_debug = false
}
end
-- 啟動mysql proxy
./mysql/mysql-proxy/bin/mysql-proxy --defaults-file=mysql-proxy.cnf
(critical) mysql-proxy-cli.c:326: loading config from 'mysql-proxy.cnf' failed
由於安全要求,必須將配置檔案許可權設為660(建立人可讀寫,同組人可讀),否則不允許啟動。
chmod 660 /mysql/mysql-proxy/mysql-proxy.cnf
netstat -tupln | grep 4040
[[email protected] ~]$ netstat -tupln | grep 4000
(No info could be read for "-p": geteuid()=500 but you should be root.)
tcp 0 0 192.168.2.123:4000 0.0.0.0:* LISTEN -
[[email protected] ~]$
搭建完畢。待測試讀寫分離。
end