mysq通过ProxySQL实现读写分离
常见的读写分离应用
Oracle:mysql-proxy
qihoo:Atlas
美团:dbproxy
网易:cetus
amoeba
阿里巴巴:cobar 基于amoeba研发
Mycat:基于cobar实现
ProxySQL
ProxySQL:MySQL中间件
- 版本:
- 官方版
- percona版:percona公司基于官方版本用C++语言开发,性能更优
- 特点:具有中间件所需的绝大多数功能,包括:
- 多种方式的读/写分离
- 定制基于用户、基于schema、基于语句的规则对SQL语句进行路由
- 缓存查询结果
- 后端节点监控
ProxySQL安装:
-
准备:
- 实现读写分离前,先实现主从复制
注:slave服务器 配置文件中必须为 read_only=1,ProxySQL通过read_only=1参数,确定哪个是salve服务器
- 实现读写分离前,先实现主从复制
-
基于YUM仓库安装:
[ root@centos ~]# cat <<EOF | tee /etc/yum.repos.d/proxysql.repo
[proxysql_repo]
name= ProxySQL YUM repository
baseurl=http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/centos/\$releasever
gpgcheck=1
gpgkey=http://repo.proxysql.com/ProxySQL/repo_pub_key
EOF
-
ProxySQL的组成:
- 服务脚本:/etc/init.d/proxysql
- 配置文件:/etc/proxysql.cnf
- 主程序:/usr/bin/proxysql
- 基于SQLITE的数据库文件:/var/lib/proxysql/
-
启动ProxySQL:service proxysql start
- 启动后会监听两个默认端口:
- 6032:ProxySQL的管理端口
- 6033:ProxySQL对外提供服务的端口
- 启动后会监听两个默认端口:
-
使用mysql客户端连接到ProxySQL的管理端口6032,默认管理员用户和密码都是admin
[ root@weiying ~]# mysql -uadmin -padmin -p6032 -hhost
- ProxySQL实现读写分离:
内置了SQLite小型数据库,里面存储了proxysql的设置
- 内置的数据库说明:
- 内置的数据库说明: