环境需求(centos)

  proxysql-server(1)-- 地址:proxysql-service

  mysql-master-server(1)--- 地址:mysql1-service

  mysql-slave-server(2)--- 地址:mysql2-service  和  mysql3-service

  提前做好三台mysql的主从复制

mysql-master-server

  创建一个监控账号和一个程序账号(自动同步到slave)

GRANT ALL ON *.* TO 'monitor'@'%' IDENTIFIED BY 'monitor';
GRANT ALL ON *.* TO 'proxysql'@'%' IDENTIFIED BY 'proxysql';

proxysql-server

  1.安装proxysql

    # vi /etc/yum.repos.d/proxysql.repo

      [proxysql_repo]
      name= ProxySQL YUM repository
      baseurl=https://repo.proxysql.com/ProxySQL/proxysql-2.0.x/centos/\$releasever
      gpgcheck=1
      gpgkey=https://repo.proxysql.com/ProxySQL/repo_pub_key

    # yum -y install proxysql

    # /etc/init.d/proxysql start

  2.安装mariadb-client(配置proxysql需要使用mysql命令)

    # vi /etc/yum.repos.d/mariadb.repo

      [mariadb]
      name = MariaDB
      baseurl = http://yum.mariadb.org/10.3.5/centos7-amd64
      gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
      gpgcheck=1

    # yum install -y MariaDB-client

  3.配置proxysql

    # cat /etc/proxysql.conf

# 使用命令来配置连接数据库做读写分离,那么配置文件基本上可以不用修改
datadir="/var/lib/proxysql"
# 这里可以修改进入proxysql的账号密码端口
admin_variables=
{
admin_credentials="admin:proxy1234"
mysql_ifaces="0.0.0.0:6032"
}
mysql_variables=
{
threads=
max_connections=
default_query_delay=
default_query_timeout=
have_compress=true
poll_timeout=
interfaces="0.0.0.0:6033;/tmp/proxysql.sock"
default_schema="information_schema"
stacksize=
server_version="5.5.30"
connect_timeout_server=
monitor_username="proxysql"
monitor_password="proxysql"
monitor_history=
monitor_connect_interval=
monitor_ping_interval=
monitor_read_only_interval=
monitor_read_only_timeout=
ping_interval_server_msec=
ping_timeout_server=
commands_stats=true
sessions_sort=true
connect_retries_on_failure=
}
mysql_servers =
(
)
mysql_users:
(
)
mysql_query_rules:
(
)
scheduler=
(
)
mysql_replication_hostgroups=
(
)

    另外,proxysql涉及两个端口6032和6033。6032是连接proxysq的管理端口,6033是连接数据库的客户端端口。

    进入proxysql

      # mysql -uadmin -pproxy1234 -P6032 -h127.0.0.1 --prompt='proxysql> '

# proxysql连接数据库
insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values(,'mysql1-service',,,,,'write mysql');
insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values(,'mysql2-service',,,,,'read mysql');
insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values(,'mysql3-service',,,,,'read mysql');

# proxysql创建监控账号和程序账号,要和上面实际数据库里创建的账号一样
insert into mysql_users(username,password,active,default_hostgroup,transaction_persistent) values('proxysql','proxysql',,,);
insert into mysql_users(username,password,active,default_hostgroup,transaction_persistent) values('monitor','monitor',,,);

# 设置账号monitor为监控账号
UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-monitor_username';
UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-monitor_password';

# 设置rule
INSERT INTO mysql_query_rules(active,match_pattern,destination_hostgroup,apply) VALUES(,'^SELECT.*FOR UPDATE$',,);
INSERT INTO mysql_query_rules(active,match_pattern,destination_hostgroup,apply) VALUES(,'^SELECT',,);

# 保存,生效
load mysql servers to runtime;
load mysql users to runtime;
load mysql variables to runtime; save mysql servers to disk;
save mysql users to disk;
save mysql variables to disk;
save mysql users to mem;
load mysql query rules to runtime;
save mysql query rules to disk; # 查询监控数据,sql语句在哪个数据库执行的
select * from stats_mysql_query_digest;

远程连接(在网络互通情况下,也可以在proxysql本地127.0.0.1)

  # mysql -unanjing -pnanjing -hproxysql-service -P6033

mysql proxysql的简单部署读写分离的更多相关文章

  1. MySQL中间件之ProxySQL(2):初试读写分离

    返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.实现一个简单的读写分离 这里通过一个简单的示例实现ProxySQL ...

  2. ProxySQL(2):初试读写分离

    文章转载自:https://www.cnblogs.com/f-ck-need-u/p/9278839.html 实现一个简单的读写分离 这里通过一个简单的示例实现ProxySQL的读写分离功能,算是 ...

  3. Mysql实战之主从复制的读写分离

    author:JevonWei 版权声明:原创作品 ProxySQL构建主从复制的读写分离 ProxySQL官网及下载地址 http://www.proxysql.com/ 架构角色 mysql-sl ...

  4. Mycat 做简单的读写分离(转载)

    大漠小狼的个人空间   http://www.51testing.com/html/34/369434-3686088.html 使用Mycat 做简单的读写分离(一) 原本使用的是amoeba做的读 ...

  5. Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  6. 分布式架构高可用架构篇_08_MyCat在MySQL主从复制基础上实现读写分离

    参考: 龙果学院http://www.roncoo.com/share.html?hamc=hLPG8QsaaWVOl2Z76wpJHp3JBbZZF%2Bywm5vEfPp9LbLkAjAnB%2B ...

  7. 黄聪:Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  8. Mysql 之主从复制,mysql-proxy读写分离

    准备两台mysql服务器,master(192.168.43.64).slave(192.168.84.129) master配置: log-bin=mysql-bin binlog_format=m ...

  9. Mysql多实例安装+主从复制+读写分离 -学习笔记

    Mysql多实例安装+主从复制+读写分离 -学习笔记 .embody{ padding:10px 10px 10px; margin:0 -20px; border-bottom:solid 1px ...

随机推荐

  1. 【BZOJ4570】 [Scoi2016]妖怪

    Description 邱老师是妖怪爱好者,他有n只妖怪,每只妖怪有攻击力atk和防御力dnf两种属性.邱老师立志成为妖怪大师,于 是他从真新镇出发,踏上未知的旅途,见识不同的风景.环境对妖怪的战斗力 ...

  2. python实现RGB转换HSV

    def rgb2hsv(r, g, b):     r, g, b = r/255.0, g/255.0, b/255.0     mx = max(r, g, b)     mn = min(r,  ...

  3. onload,domcontentload区别+onload详解

    todo onLoad是的在页面所有文件加载完成后执行 DomContentLoad是Dom加载完成后执行,不必等待样式脚本和图片加载 domContentLoad更为合理, 原理: 如果是webki ...

  4. 如何隐藏scroll-Y纵向滚动条,并不影响内容滚动的方法

    网上搜了很多关于隐藏滚动条的文章,发现很多都是只说了如何隐藏scroll-X横向滚动条,对scroll-Y纵向滚动条并没有明确的述说.本文章将介绍3种隐藏滚动条的方法,大家可以结合实际情况,参考文章内 ...

  5. 看完你也想编写自己的 react 插件

    副标题----为什么我要写这个 react 插件 图片懒加载是项目中常用的功能,然而现有 react 懒加载组件库,用着都不是很爽了 ?.概括一下有如下几点: 没有只针对 image 懒加载组件.多数 ...

  6. 《Effective Java》读书笔记 - 11.序列化

    Chapter 11 Serialization Item 74: Implement Serializable judiciously 让一个类的实例可以被序列化不仅仅是在类的声明中加上" ...

  7. python连接字符串的几种方法--转子(香草拿铁的园子)

    一. str1+str2 string类型 ‘+’号连接 >>> str1="Good" >>> str2="Luck" & ...

  8. Jmeter 设置连接oracle数据库

    一.添加需要数据库驱动jar包 方式1:直接将jar包复制到jmeter的lib目录,或lib/ext目录:(亲测两个目录都可以使用) 方式2:使用jmeter的Test Plan引入相应的jar包: ...

  9. linux命令--truncate 学习

    truncate命令可以将一个文件缩小或者扩展到某个给定的大小 可以利用该命令和-s选项来特别指定文件的大小 1.清空一个文件内容,尤其是log 2. truncate -s 0 test

  10. hibernate映射简单实例

    1创建数据库: --班级表 create table grade ( gid number primary key, --班级ID gname varchar2(50), --班级名称 gdesc v ...