proxysql的应用和花式路由规则

Posted 秀秀*星星*大洋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了proxysql的应用和花式路由规则相关的知识,希望对你有一定的参考价值。

一、介绍                   

ProxySQL是基于mysql的一款开源的中间件的产品,是一个灵活的MySQL代理层,可以实现读写分离, 支持 Query路由功能,支持动态指定某个SQL进行缓存,支持动态加载配置信息(无需重启 ProxySQL 服务),支持故障切换和SQL的过滤功能。

相关 ProxySQL 的网站:

https://www.proxysql.com/

https://github.com/sysown/proxysql/wiki

基础架构如下

                                                          

 

 

二、安装proxysql

     2.1  基于Mysql主从构建的proxysql读写分离

                                         

               2.1.1 实验环境规划

IP 用途
10.2.83.140
10.2.83.141
10.2.83.140 proxysql

 

                         2.1.2  主从安装

                                  数据库版本:8.0.19

                                  数据库安装步骤如下:

                                   # 1.上传软件包至/usr/local下,并解压

                                           tar xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz

                                   # 2.做个软链接方便管理

                                             ln -s mysql-5.7.26-linux-glibc2.12-x86_64 mysql

                                   # 3. 编辑配置文件(主)

                                           

 

                                   # 4. 创建相关的目录和属主授权

                                          useradd mysql -M -s /sbin/nologin

                                          chown -R mysql. /usr/local/mysql/

                                          chown -R mysql. /data/mysql

                                   # 5. 初始化数据

                                           mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

                                            --initialize-insecure :生成空密码,不适用随机密码

                                            --basedir:安装路径

                                            --datadir:数据存储路径

                                   # 6. 配置环境变量

                                             vim /etc/profile
                                             export PATH=/usr/local/mysql/bin/:$PATH

                                   # 7. 配置数据库启动init管理

                                                                                                                

                                          cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

                                           /etc/init.d/mysqld start   // 启动数据库

                                  # 8. 从库做法一致注意配置文件,从库的配置文件如下

                                          

 

                                  # 9. 构建主从

                                           主库创建复制用户:

                                            set sql_log_bin=0;  //关闭binlog,使创建用户的动作不要记录到binlog,

                                                                           以免影响到备份,mysql 8.0版本需要,mysql 5.7无需

                                             CREATE USER \'repl\'@\'%\' IDENTIFIED WITH mysql_native_password BY \'1qaz@WSX\'; //创建复制用户

                                              grant replication slave on *.* to \'repl\'@\'%\';   //授权
                                              flush privileges;    //权限刷新

                                               set sql_log_bin=1;   //开启binlog记录

                                    # 10. 从库构建主从

                                                                                                                         

                                     change master to master_host=\'10.2.83.140\',master_user=\'repl\',master_password=\'1qaz@WSX\' ,

                                      MASTER_AUTO_POSITION=1;  //指定构建主从
                                       mysql> start slave;  //启动主从复制

                                      mysql> show slave status\\G  //查看主从状态,出现两个Yes则为正常

                                      至此,主从复制构建完毕!!

            

 

                                                                                                       

 

以上是关于proxysql的应用和花式路由规则的主要内容,如果未能解决你的问题,请参考以下文章

通过 ProxySQL 在 TiDB 上实现 SQL 的规则化路由

ProxySQL 读写分离实践

ProxySQL+Mysql实现数据库读写分离实战

ProxySQL+Mysql实现数据库读写分离实战

Spring boot 和 ProxySQL 一起用,有用吗?

应用MySQL读写分离以提高MySQL服务器的读写性能