mysql读写分离 mysql-proxy
时间:2022-03-10 18:01
一、介绍
MySQL代理是一个介于MySQL客户端和MySQL服务器之间的简单程序,可用来监视、分析或者传输他们之间的通讯。他的灵活性允许你最大限度的使用它,这些包括负载平衡、容错 、分析查询和修正等等;
MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可。当然,这样proxy机器可能成为单点失效,但完全可以使用多个proxy机器做为冗余,在应用服务器的连接池配置中配置到多个proxy的连接参数即可。
实验环境:
IP地址 | |
mysql-proxy | 192.168.100.104 |
mysql-master | 192.168.100.102 |
mysql-slave | 192.168.100.103 |
首先,你得先配置mysql主从,可能跳转至 有主从配置方法。
--admin-address=host:port 管理模块监听的地址和端口;--proxy-backend-addresses=host:port 后端mysql服务器的地址和端口;
--proxy-read-only-backend-addresses=host:port 后端只读mysql服务器的地址和端口;
--proxy-lua-script=file_name 完成mysql代理功能的Lua脚本;
--daemon 以守护进程模式启动mysql-proxy;
--keepalive 在mysql-proxy崩溃时尝试重启之;
--log-file=/path/to/log_file_name 日志文件名称;
--log-level=level 日志级别;
--log-use-syslog 基于syslog记录日志;
--plugins=plugin,.. 在mysql-proxy启动时加载的插件;
--user=user_name 运行mysql-proxy进程的用户;
--defaults-file=/path/to/conf_file_name 默认使用的配置文件路径;其配置段使用[mysql-proxy]标识;
--proxy-skip-profiling 禁用profile;
--pid-file=/path/to/pid_file_name 进程文件名;
--auto-generate-sql 用系统自己生成的SQL脚本来测试;
--auto-generate-sql-load-type 要测试的是读还是写还是两者混合的(read,write,update,mixed);
--number-of-queries 总共要运行多少次查询。每个客户运行的查询数量可以用查询总数/并发数来计算;
--de-info 要额外输出CPU以及内存的相关信息。
--number-int-cols 创建测试表的 int 型字段数量;
--auto-generate-sql-add-autoincrement : 对生成的表自动添加auto_increment列,从5.1.18版本开始;
--number-char-cols 创建测试表的 char 型字段数量。
--create-schema 测试的schema,MySQL中schema也就是database;
--query 使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试;
--only-print 如果只想打印看看SQL语句是什么,可以用这个选项;
本文出自 “” 博客,请务必保留此出处
mysql读写分离 mysql-proxy,布布扣,bubuko.com