Mysql-proxy implemented on separate read and write

Preface Introduction:
Mysql-Proxy is a middleware service mysql MySQL official provided support numerous client connections, while the number of units can be connected to the rear end Mysql-Server server, MYSQL-Proxy their MySQL-based protocol, the connection MYSQL-Proxy clients do not need to change any settings there is no difference with the normal connection MYSQL Server, without modifying the code.

surroundings:

Mysql-proxy:192.168.109.102

Master-109.100 192.168.109.100

Slave-109.101:192.168.109.101

Experimental topology map

 

 

 

[root@Mysql-proxy ~]# wget http://mirrors.163.com/mysql/Downloads/MySQL-Proxy/mysql-proxy-0.8.4-linux-glibc2.3-x86-64bit.tar.gz

[root@Mysql-proxy ~]# tar xvf mysql-proxy-0.8.4-linux-glibc2.3-x86-64bit.tar.gz

[root@Mysql-proxy ~]# echo "export PATH=/usr/local/mysql-proxy/bin:$PATH" > /etc/profile.d/mysql-proxy.sh

[root@Mysql-proxy~]# source /etc/profile
[root@Mysql-proxy~]# mysql-proxy --daemon --log-level=debug --user=mysql-proxy --keepalive --log-file=/var/log/mysql-proxy.log --plugins="proxy" --proxy-backend-addresses="192.168.109.100:3306" --proxy-read-only-backend-addresses="192.168.109.101:3306" --proxy-lua-script="/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua" --plugins=admin --admin-username="admin" --admin-password="admin" --admin-lua-script="/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua"

Detailed parameters:

Mysql- # Proxy-related arguments detailed as follows:
 --help- All # get all help information
 --proxy-address = Host: Port # proxy service listening address and port, default 4040
 --admin-address = Host: listen address and port # port management module, the default is 4041
 --proxy-backend-addresses = Host: port: mysql server address and port of the back-end; 
--proxy-the Read-only-backend-addresses = Host: port # Read-only back-end mysql server address and port; --proxy-lua-scripts = file_name: # mysql completed proxy functionality Lua script;: in daemon mode is activated mysql - Proxy; -keepalive # in MySQL - try to restart when the proxy crashes;
--log-File = /var/log/mysql-proxy.log # log file name;
--log-Level = Level # log level --log-Use - syslog # records syslog log --plugins = plugin # mysql-proxy in the boot loader plug- --user = user_name # mysql_proxy running process user --defaults-file = / path / to / conf_file_name: the default configuration file path used, its configuration sections using [mysql- Proxy] identity; --proxy-Skip-Profiling: disable Profile;
--pid-file = / path / to / pid_file_name: process file name;

 

# View mysql-proxy start port / log

【Master-109.100】

After the # mysql-proxy end start to be complete, we landed Matser main library licensed to operate all of the main library mysql-proxy node allows the agent node;

#grant all on *.* to "mysql-proxy"@"192.168.1091.102" identified by "123456";

#flush privileges;

 授权完毕之后,通过mysql-proxy代理端(192.168.109.1021)模拟向主库192.168.109.100插入数据

[root@Mysql-proxy ~]# mysql -h 192.168.109.102 -u mysql-proxy -p123456 -P4040 -e "create database Testdb charset=utf8;" 

[root@Mysql-proxy ~]# mysql -h 192.168.109.102 -u mysql-proxy -p123456 -P4040  -e "create table Testdb.t1(id int(10) auto_increment primary key,name varchar(40),age varchar(40));"

随后我们通过登陆4041管理端口查看mysql-proxy所代理的主从读写分离状态,很明显,写库状态已经激活(UP状态)

[root@Mysql-proxy ~]# mysql -h 192.168.109.102 -uadmin -padmin -P4041 -e "select * from backends;"

 

 随后通过4041查询数据,因为主从关系,通过mysql-proxy端写入的数据默认也会同步到从库(192.168.109.101);

#为了更好的验证,我们通过mysql-proxy代理端读取数据是走的slave从库:只需要在从库192.168.109.101单独插入一下表数据

(因为在从库插入的数据不会同步到主库中,这样便于区分,随后我们在proxy端执行select查询语句的时候,就可以很明显的区分查的主库还是从库了)

 [root@Mysql-proxy ~]# mysql -h 192.168.109.102 -umysql-proxy -p123456 -P4040 -e "select * from Testdb.t1;"

[root@Mysql-proxy ~]# mysql -h 192.168.109.102 -uadmin -padmin -P4041 -e "select * from backends;" 

END!

Guess you like

Origin www.cnblogs.com/bixiaoyu/p/12428048.html