ProxySQL代理安装步骤及自定义服务端口

ProxySQL是一个灵活强大的MySQL代理层,可以实现读写分离,支持 Query 路由、SQL Cache,动态加载配置、故障切换和 SQL 过滤等功能。部署ProxySQL以实现后端数据库负载均衡,以下是安装步骤及常用操作SQL。

  1. 安装文件下载
    根据服务器的架构下载对应的rpm版本,下载地址https://repo.proxysql.com/ProxySQL/。
    因为ProxySQL安装需要依赖gnutls,需要看下安装的gnutls版本
 gnutls-cli --version

如果,你的版本是GnuTLS 3.x,是较新的版本,主要的库文件为/usr/lib64/libgnutls.so.30。如果你的操作系统为ky10.x86_64,则需要下载ProxySQL的centos8.x86_64的版本。
如果,你的版本是GnuTLS 2.8.x ,主要的库文件为/usr/lib64/libgnutls.so.28。如果你的操作系统为centos,下载centos7版本就行。
博主的安装文件为proxysql-2.7.0-1-centos8.x86_64.rpm

  1. 安装依赖
yum install -y gnutls perl-DBD-MySQL perl-DBI perl-devel
  1. 解压安装包并修改配置文件
rpm2cpio proxysql-2.0.14-1-centos7.x86_64.rpm | cpio -ivdm
vim  ./etc/proxysql.cnf

修改proxysql.cnf文件配置项

datadir = "/var/lib/proxysql"  #数据存储目录,绝对路径
errorlog = "/var/lib/proxysql/proxysql.log" #日志存储目录,绝对路径
admin_variables=
{
        admin_credentials="admin:admin"
#       mysql_ifaces="127.0.0.1:6032;/tmp/proxysql_admin.sock"
        mysql_ifaces="0.0.0.0:6032"   #管理端口,默认为6032,可以修改为自定义端口
#       refresh_interval=2000
#       debug=true
}
mysql_variables=
{
        threads=4
        max_connections=2048
        default_query_delay=0
        default_query_timeout=36000000
        have_compress=true
        poll_timeout=2000
#       interfaces="0.0.0.0:6033;/tmp/proxysql.sock"
        interfaces="0.0.0.0:6033"  #流量转发端口,对外服务端口,可以修改为自定义端口 
...
}
  1. 启动服务
./usr/bin/proxysql -c ./etc/proxysql.cnf --no-monitor
  1. 修改配置
#登录proxySQL
mysql -u admin -padmin -h 127.0.0.1 -P6032
#配置全局日志
SET mysql-eventslog_filename='proxysql_queries.log';
SET mysql-eventslog_default_log=1;
SET mysql-eventslog_format=2;
LOAD MYSQL VARIABLES TO RUNTIME;  #加载到运行时
SAVE MYSQL VARIABLES TO DISK; #存储到磁盘

#插入后端数据库
insert into mysql_servers(hostgroup_id, hostname, port) values(1, '172.26.92.139', 3306);
insert into mysql_servers(hostgroup_id, hostname, port) values(1, '172.26.34.139', 3306);
insert into mysql_servers(hostgroup_id, hostname, port) values(1, '172.26.34.140', 3306);
load mysql servers to runtime;
save mysql servers to disk;

#插入后端用户名密码
insert into mysql_users(username, password, active, default_hostgroup, backend, frontend) 
values('root', 'XXXX', 1, 1, 1, 1);
load mysql users to runtime; 
save mysql users to disk;
#配置转发规则
insert into mysql_query_rules(rule_id, active, match_digest, destination_hostgroup, mirror_hostgroup, apply) values(1, 1, '.', 1, 2, 1);
load mysql query rules to runtime; 
save mysql query rules to disk;

完成以上步骤后,您可以通过 ProxySQL 经由6033端口对数据库进行操作,执行以下SQL运行成功则proxySQL成功部署。

mysql -u admin -padmin -P6033 -h 127.0.0.1 -e"select * from db_name.table_name"

如果需要再修改proxySQL的服务端口,博主试过直接修改配置文件后重启proxy服务但是修改并未生效,通过执行下面SQL语句修改也未生效。 最后的方法是找到proxysql.db文件,删掉这个文件且重新初始化proxySQL。

UPDATE global_variables SET variable_value='0.0.0.0:8122' WHERE variable_name='mysql-interfaces';
LOAD MYSQL VARIABLES TO RUNTIME;
SAVE MYSQL VARIABLES TO DISK;
SELECT * FROM global_variables WHERE variable_name LIKE '%interface%';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值