DBProxy

DBproxy

文档

  • 文档链接
  • 制作的 docker 镜像
  • 使用镜像docker pull skylee/docker:dbproxy
  • 配置必要参数,就可进行测试了。
  • 一般公司项目的话,运维同学都已经帮忙把环境部署做好了,但是作为开发需要了解这些功能。并且知道怎么样可能优化开发流程。

使用

DBproxy 通过配置文件的方式来发挥作用。

主从配置

1
2
3
4
5
6
7
8
9
pwds=xxx:6eSYdMIPrZU5NA== # mysql 账号密码
instance=test # 实例名称,

# 配置一个读写库,其ip地址为:1.1.1.1,端口为3306;配置两个只读库,从库1的ip地址为:1.1.1.1,端口为:3306,标签名称为:tag_mt,权重为10;从库2的ip地址为:2.2.2.2,端口为:3306,不配置标签名称和权重,该配置文件应如下:

proxy-backend-addresses=1.1.1.1:3306;
proxy-read-only-backend-addresses=1.1.1.1:3306$tag_mt@10,2.2.2.2:3306;

proxy-address=0.0.0.0:3307

启动

1
/usr/local/mysql-proxy/bin/mysql-proxyd  test  start|restart|stop

连接

1
mysql -uxx -p** -h127.0.0.1 -P3307

分表配置

1
2
tables=dbname.tablename.shardcolname.shardnum[,dbname.tablename.shardcolname.shardnum]           
##dbname:数据库名称 tablename:分表的表名 shardcolname:分表键 shardnum:分表个数

QA

  • Q : 报错 proxy Warning - Syntax Forbidden Prepare 的错误怎么解决?

    设置 PDO 的的处理方式,PDO::ATTR_EMULATE_PREPARES => true 解决。

  • Q 报错 chart_set 等错误?

    不支持自定义字符集,默认使用数据库配置的。