Home - malongshuai/proxysql GitHub Wiki
快速开始
安装
下载ProxySQL安装包: https://github.com/sysown/proxysql/releases
下载之后,使用操作系统的包管理器来安装它:
wget https://github.com/sysown/proxysql/releases/download/v1.4.9/proxysql_1.4.9-ubuntu16_amd64.deb
dpkg -i proxysql_1.4.9-ubuntu16_amd64.deb
也可以使用仓库来安装:
Ubuntu / Debian:
添加仓库:
apt-get install -y lsb-release
wget -O - 'http://repo.proxysql.com/ProxySQL/repo_pub_key' | apt-key add -
echo deb http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/$(lsb_release -sc)/ ./ \
| tee /etc/apt/sources.list.d/proxysql.list
安装:
apt-get update
apt-get install proxysql OR apt-get install proxysql=version
Red Hat / 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
安装:
yum install proxysql OR yum install proxysql-version
ProxySQL服务管理
ProxySQL安装好后,可以使用 service
来启动和停止它:
启动 ProxySQL:
service proxysql start
停止 ProxySQL:
service proxysql stop
ProxySQL升级
只需安装新的ProxySQL版本然后重启即可:
wget https://github.com/sysown/proxysql/releases/download/v1.4.9/proxysql_1.4.9-ubuntu16_amd64.deb
dpkg -i proxysql_1.4.9-ubuntu16_amd64.deb
service proxysql restart
查看ProxySQL的版本
$ proxysql --version
ProxySQL version v1.4.9-1.1, codename Truls
在版本号中有 _DEBUG
字符串的表示它是调试版本。
调试版本比非调试版本要慢,但是在出现故障时更容易调试。
$ proxysql --version
Main init phase0 completed in 0.000146 secs.
ProxySQL version v1.4.9-1.1_DEBUG, codename Truls
admin interface
配置ProxySQL
通过首先,请记住,配置ProxySQL的最佳方式是通过它的管理接口(admin interface)。这样可以通过SQL查询它的管理数据库实现在线配置(无需重启ProxySQL)。这种配置方式非常有效。
第二种配置方式是使用配置文件。
通过管理接口配置ProxySQL
可以使用mysql客户端来连接管理接口,以下是使用admin
凭据连接到本地6032端口的管理接口:
$ mysql -u admin -padmin -h 127.0.0.1 -P6032 --prompt='Admin> '
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.5.30 (ProxySQL Admin Module)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Admin>
注意:如果你的MySQL客户端版本为8.04或更高版本,需要在上面连接到管理接口的命令行上加上--default-auth=mysql_native_password
。
连接到管理界面后,可以列出你允许使用SQL语言进行查询的数据库和表的列表:
Admin> SHOW DATABASES;
+-----+---------+-------------------------------+
| seq | name | file |
+-----+---------+-------------------------------+
| 0 | main | |
| 2 | disk | /var/lib/proxysql/proxysql.db |
| 3 | stats | |
| 4 | monitor | |
+-----+---------+-------------------------------+
4 rows in set (0.00 sec)
这些是你能控制的后端服务器节点,一些请求以及设置(如缓存、访问控制列表等)会路由到这些节点上。当在内存中修改了这些数据结构,必须为运行时环境加载新的配置,或者将设置持久化到磁盘(这样即使重启ProxySQL,这些配置也都还在)。关于管理接口配置ProxySQL更详细的内容,参见:here。
通过配置文件配置ProxySQL
尽管通过配置文件配置ProxySQL只是一种辅助方式,我们也无法忽略它的价值,因为引导新安装的ProxySQL的启动,需要它。
让我们快速浏览一下配置文件的主要部分(这个概述是对ProxySQL配置的一个非常高级的概述)。
顶级sections:
-
admin_variables
:包含控制管理接口功能的全局变量。 -
mysql_variables
:包含控制"处理MySQL流入流量功能"的全局变量。 -
mysql_servers
:包含管理接口中mysql_servers
表的行。它们定义了MySQL流量要路由到的后端服务器。行按照.cfg
文件格式进行编写,例如:mysql_servers = ( { address="127.0.0.1" port=3306 hostgroup=0 max_connections=200 } )
-
mysql_users
:包含管理接口中mysql_users
表的行。它们定义了谁可以连接到ProxySQL,以及ProxySQL用哪个用户连接后端服务器。行按照.cfg
文件格式进行编写,例如:mysql_users: ( { username = "root" password = "root" default_hostgroup = 0 max_connections=1000 default_schema="information_schema" active = 1 } )
-
mysql_query_rules
:包含管理接口中mysql_query_rules
表的行。它们根据各种标准(pattern匹配,执行查询的用户身份,等等)定义了对MySQL流量的分类和路由规则。行按照.cfg
文件格式进行编写,例如(注意:这个示例是一个非常通用的查询路由规则,强烈建议创建专门的查询规则替代这个通用规则):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 } )
-
顶级配置项:
datadir
指定数据目录的路径。