mysql proxy 源码安装_ProxySQL源码安装

01_ProxySQL安装

备注:文章编写时间201904-201905期间,后续官方在github的更新没有被写入

~

~

ProxySQL是被公认的功能强大的MySQL中间件之一,但官网视乎很低调;以至于没有清楚的说明它自己到底擅长什么....

于是,通过网上收集,大致列出ProxySQL主要功能:

读写分离

数据库集群、分片(要写级多路由规则,相对繁琐)

分库分表(要写级多路由规则,相对繁琐)

主从切换

SQL审计

连接池、多路复用

负载均衡

查询重写

流量镜像

自动重连

自动下线

高可用

~

~

一、安装ProxySQL

方式1:通过yum安装(centos 6)

1、添加yum源

# cat <

[proxysql_repo]

name= ProxySQL YUM repository

#proxysql2.0版地址

baseurl=https://repo.proxysql.com/ProxySQL/proxysql-2.0.x/centos/\$releasever

#proxysql1.4版本地址

#baseurl=http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/centos/\$releasever

gpgcheck=1

gpgkey=https://repo.proxysql.com/ProxySQL/repo_pub_key

EOF

2、安装

#yum install proxysql OR yum install proxysql-version

~

~

方式2:源码安装(建议Centos 7.4及以上)

1 、解压源码包

# tar -zxvf proxysql-1.4.15.tar.gz

# cd proxysql-1.4.15

2、查看安装说明文档

#less INSTALL.md

3、根据INSTALL.md安装

#yum install automake bzip2 cmake make gcc-c++ gcc git openssl openssl-devel patch

备注:需要保证gcc-c++版本足够新,不然编译有错。

#yum install perl-DBD-MySQL ==>使用yum安装时用到了整个依赖包,这里也一起装了。

#make

#make install

4、加入环境变量

# vim /etc/profile

PROXYPATH=/usr/local/proxysql/usr/bin

export PATH=$PATH:$PROXYPATH

本人在Centos6.5和Centos 7.2上都没有安装成功!!最后使用了yum方式!这里按INSTALL.md编写的。

~

~

其他方式:

直接使用二进制包(percona版)

下载地址:

https://www.percona.com/downloads/proxysql/proxysql-1.4.12/binary/tarball/proxysql-1.4.12-Linux-centos6-x86_64.tar.gz

1、解压

#tar -zxvf proxysql-1.4.12-Linux-centos6-x86_64.tar.gz -C /usr/local/proxysql

#cd /usr/local/

#mv proxysql-1.4.12-Linux-x86_64 proxysql

#tree proxysql

proxysql

├── etc

│ ├── init.d

│ │ └── proxysql

│ ├── logrotate.d

│ │ └── proxysql-logrotate

│ ├── proxysql-admin.cnf

│ └── proxysql.cnf

├── tests

│ ├── async-slave-testsuite.bats

│ ├── desynced-host-testsuite.bats

│ ├── generic-test.bats

│ ├── host-priority-testsuite.bats

│ ├── loadbal-testsuite.bats

│ ├── proxysql-admin-testsuite.bats

│ ├── proxysql-admin-testsuite.sh

│ ├── test-common.bash

│ └── writer-is-reader-testsuite.bats

├── usr

│ └── bin

│ ├── proxysql

│ ├── proxysql-admin

│ ├── proxysql_galera_checker

│ ├── proxysql_node_monitor

│ └── proxysql-status

└── var

└── lib

└── proxysql

9 directories, 18 files

2、加入环境变量

# vim /etc/profile

PROXYPATH=/usr/local/proxysql/usr/bin

export PATH=$PATH:$PROXYPATH

~

~

二、安装结果验证

1、查看proxysql版本,验证命令

# proxysql --version

ProxySQL version 2.0.2-1-g533442f, codename Truls

备注:本次实验安装得是2.0.2版本

~

~

2、修改ProxySQL数据目录

说明:根据实际情况修改datadi路径,默认为/var/lib/proxysql。

1)修改proxysql.cnf

#cd /usr/local/proxysql/etc

#vim proxysql.cnf

datadir="/usr/local/proxysql/var/lib/proxysql"

2)修改proxysql-admin.cnf

# vim proxysql-admin.cnf

export PROXYSQL_DATADIR='/usr/local/proxysql/var/lib/proxysql'

备注:2.0版本中没有了这个配置文件。

~

~

3、启动/停止ProxySQL服务

启动

如果不使用/etc/init.d/proxysql服务脚本启动,则需要在启动前设置

ulimit -n 102400

ulimit -c 1073741824

即设置

vim /etc/security/limits.conf

proxysql soft nofile 102400

proxysql soft core 1073741824

#proxysql -c /usr/local/proxysql/etc/proxysql.cnf &

#service proxysql start

停止

#service proxysql stop

Admin>proxysql stop ; -->停止提供服务,但进程还在。

重启

#service proxysql restart

Admin>proxysql restart ;

~

~

4、登录ProxySQL

使用mysql客户端连接proxysql,默认端口6032 默认用户名,密码都是 admin

#mysql -u admin -padmin -h 127.0.0.1 -P 6032 --prompt 'Admin> '

注意:如果你使用的MySQL客户端版本为8.04及以后,连接时请添加参数项--default-auth=mysql_native_password

~

~

查看实例中的默认数据库:

Admin>SHOW DATABASES;

+-----+---------------+-------------------------------------+

| seq | name | file |

+-----+---------------+-------------------------------------+

| 0 | main | |

| 2 | disk | /var/lib/proxysql/proxysql.db |

| 3 | stats | |

| 4 | monitor | |

| 5 | stats_history | /var/lib/proxysql/proxysql_stats.db |

+-----+---------------+-------------------------------------+

5 rows in set (0.00 sec)

Admin>show tables;

+--------------------------------------------+

| tables |

+--------------------------------------------+

| global_variables |

| mysql_collations |

| mysql_galera_hostgroups |

| mysql_group_replication_hostgroups |

| mysql_query_rules |

| mysql_query_rules_fast_routing |

| mysql_replication_hostgroups |

| mysql_servers |

| mysql_users |

| proxysql_servers |

| runtime_checksums_values |

| runtime_global_variables |

| runtime_mysql_galera_hostgroups |

| runtime_mysql_group_replication_hostgroups |

| runtime_mysql_query_rules |

| runtime_mysql_query_rules_fast_routing |

| runtime_mysql_replication_hostgroups |

| runtime_mysql_servers |

| runtime_mysql_users |

| runtime_proxysql_servers |

| runtime_scheduler |

| scheduler |

+--------------------------------------------+

22 rows in set (0.00 sec)

~

~

三、通过admin interface(管理接口)配置ProxySQL

配置ProxySQL首选的方式就是通过admin interface,它可以在线动态修改配置,并且不需要重启ProxySQL服务。

其次才是通过修改配置文件来调整。

~

~

这里大概的过一下配置文件相关内容:

1、datadir配置项

datadir==>指定ProxySQL服务的数据存放路径(字符串);

~

~

2、admin_variables配置项

admin_variables==>对应global_variables表中那些控制着admin interface的相关功能的全局参数项,也就是配置ProxySQL自己的连接信息;

# cat /usr/local/proxysql/etc/proxysql.cnf

admin_variables=

{

admin_credentials="admin:admin"

mysql_ifaces="0.0.0.0:6032"

}

~

~

3、mysql_variables配置项

mysql_variables==>对应global_variables表中那些控制着传入MySQL流的相关功能的全局参数项,也就是配置ProxySQL访问后端MySQL的设置 ;

# cat /usr/local/proxysql/etc/proxysql.cnf

mysql_variables=

{

threads=4

max_connections=2048

default_query_delay=0

default_query_timeout=36000000

server_version="5.5.30"

connect_timeout_server=3000

.........

}

~

~

4、mysql_servers配置项

mysql_servers==>对应admin interface中mysql_servers表中的内容;它定义了后端MySQL服务的信息。

它需要以.cfg(配置文件)的格式来书写。

mysql_servers =

(

{

address="127.0.0.1"

port=3306

hostgroup=0

max_connections=200

}

)

~

~

5、mysql_users配置项

mysql_users==>对应admin interface中mysql_users表中的内容;它是控制哪些用户可用连入ProxySQL以及哪些用户可以访问

后端的MySQL服务。它需要以.cfg(配置文件)的格式来书写。

mysql_users:

(

{

username = "root"

password = "root"

default_hostgroup = 0

max_connections=1000

default_schema="information_schema"

active = 1

}

)

~

~

6、mysql_query_rules配置项

mysql_query_rules==>对应admin interface中mysql_query_rules表中的内容;用于定义对传入的MySQL流量进行分类和路由的规则。

建议根据查询来编写特定的规则,而不是下下面一样笼统的概括。

mysql_query_rules:

(

{

rule_id=1

active=1

match_pattern="^SELECT .* FOR UPDATE$"

destination_hostgroup=0

apply=1

},

{

rule_id=2

active=1

match_pattern="^SELECT"

destination_hostgroup=1

apply=1

}

)

~

~

完毕

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值