环境需求(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. csp-s2019 AFO记

    DAY 0 上午出发前大家都很颓废的样子. 我因为还没有实现刷完NOIP专题的所有题的目标而去憨比的学DDP. 最后还是不会,保卫王国是写不成了…… 该走了,学校领导来开了个欢送会,祝福我们从里WA到 ...

  2. 【BZOJ2022】Pku1837 Balance

    Description Gigel has a strange "balance" and he wants to poise it. Actually, the device i ...

  3. tf.InteractiveSession() 和 tf.Session() 的区别

    tf.InteractiveSession():它能让你在运行图的时候,插入一些计算图,这些计算图是由某些操作(operations)构成的.这对于工作在交互式环境中的人们来说非常便利,比如使用IPy ...

  4. excel里面匹配部分字符的问题

                如上图所示,有两个表,前者存的是区号电话号连起来的电话号,后者存的是世界各地的区号,怎么把第一个表里分成两列,一列单独存区号,一列单独存电话号. ps:电话号码长度和区号长度都 ...

  5. 一个”.java”源文件中是否可以包含多个类(不是内部类)?有什么限制

    这个是可以的,一个“.java”源文件里面可以包含多个类,但是只允许有一个public类,并且类名必须和文件名一致. 每个编译单元只能有一个public 类.这么做的意思是,每个编译单元只能有一个公开 ...

  6. leetcode-easy-array-50. Intersection of Two Arrays II

    mycode  77.78% class Solution(object): def intersect(self, nums1, nums2): """ :type n ...

  7. Xcode10报错 library not found for -lstdc++ 问题解决

    在Xcode9上正常编译的项目,在Xcode10上编译可能会遇到如下错误: library not found for -lstdc++.6.0.9 library not found for -ls ...

  8. 阶段3 1.Mybatis_02.Mybatis入门案例_3.mybatis注解开发和编写dao实现类的方式

    注解的用法 直接创建一个新的项目 下一步直接next 然后finish即可 把之前项目01里面的代码直接复制过来 复制到我们02的注解的工程中 把01项目导入的依赖也都粘贴过来 再把测试类复制过去 复 ...

  9. Flink容错机制

    Flink的Fault Tolerance,是在在Chandy Lamport Algorithm的基础上扩展实现了一套分布式Checkpointing机制,这个机制在论文"Lightwei ...

  10. ElasticSearch入门 —— 集群搭建

    一.环境介绍与安装准备 1.环境说明 2台虚拟机,OS为ubuntu13.04,ip分别为xxx.xxx.xxx.140和xxx.xxx.xxx.145. 2.安装准备 ElasticSearch(简 ...