mysql proxy搭建读写分离

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xxzhaobb/article/details/83993590

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
[mysql@rac03 ~]$ 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      -                   
[mysql@rac03 ~]$ 

搭建完毕。待测试读写分离。

end

猜你喜欢

转载自blog.csdn.net/xxzhaobb/article/details/83993590
今日推荐