ProxySQL是一个开源、高性能、高可用、数据库协议感知的,动态支持SQL重写的MySQL代理。
ProxySQL的下载和部署
1.ProxySQL支持的操作系统及版本:
- RedHat & CentOS 7, 8, 9
- Amazon Linux 2, 2023
- Debian 10, 11, 12
- Ubuntu 16, 18, 20, 22
- Almalinux 8, 9
- OpenSUSE Leap 15
也可以通过docker、K8s的方式进行部署。本文的操作系统是CentOS 7.7,通过yum的方式进行部署。
2.目前官方维护的版本
- ProxySQL Core 2.6.x Series (GA)
- ProxySQL Core 2.5.x Series (GA)
- ProxySQL Core 2.4.x Series (GA)
- ProxySQL Core 2.3.x Series (GA)
- ProxySQL Core 2.2.x Series (GA)
- ProxySQL Binlog Reader 2.x Series (GA)
3.ProxySQL 2.5版本的部署
编辑yum仓库:
cat <<EOF | tee /etc/yum.repos.d/proxysql.repo
[proxysql_repo]
name=ProxySQL repository
baseurl=https://repo.proxysql.com/ProxySQL/proxysql-2.5.x/centos/\$releasever
gpgcheck=1
gpgkey=https://repo.proxysql.com/ProxySQL/proxysql-2.5.x/repo_pub_key
EOF
部署ProxySQL:
yum install proxysql
rpm -ql proxysql
/etc/logrotate.d/proxysql
/etc/proxysql.cnf
/etc/systemd/system/proxysql-initial.service
/etc/systemd/system/proxysql.service
/usr/bin/proxysql
/usr/share/proxysql/tools/proxysql_galera_checker.sh
/usr/share/proxysql/tools/proxysql_galera_writer.pl
ProxySQL通过yum的方式部署,还是非常方便的。ProxySQL的配置文件在/etc目录下。
4.启动、停止proxysql
ProxySQL部署好之后,就可以通过默认的基本配置,通过下面的命令进行启动:
#启动proxysql:
systemctl start proxysql
#查看proxysql的进程
ps auxf |grep proxysql
#查看proxysql的状态
systemctl status proxysql
#查看proxysql的版本信息
proxysql --version
#关闭proxysql
systemctl stop proxysql
5.访问ProxySQL的管理接口
proxysql提供了一个通过MySQL协议访问的管理界面,通过SQL命令可以对ProxySQL进行配置和管理,默认的管理端口为6032。
ProxySQL默认的登录用户名、密码都是admin,且默认只能通过127.0.0.1进行登录,不能使用localhost,因为通过mysql客户端登录时,localhost使用的时unix socket而不是tcp连接:
mysql -uadmin -p -P6032 -h 127.0.0.1 --prompt='ProxySQL-Admin> '
注意:ProxySQL官方提示,如果mysql客户端的版本高于8.0.4那么在命令行中需要添加--default-auth=mysql_native_password(实际发现,我的mysql客户端的版本是8.0.20不需要该参数也可以正常登录)
ProxySQL-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 |
+-----+---------------+-------------------------------------+
登录ProxySQL之后,就可以像在MySQL中使用SQL命令来操作ProxySQL。
#停止ProxySQL
ProxySQL-Admin> proxysql stop
#重启ProxySQL
ProxySQL-Admin> proxysql restart
6.ProxySQL的重新初始化
systemctl start proxysql-initial(进程后面会有--initial参数)
ps aux |grep proxysql
proxysql 46697 0.0 0.0 69664 2392 ? S 11:44 0:00 /usr/bin/proxysql --idle-threads -c /etc/proxysql.cnf --initial
proxysql 46698 1.3 0.0 430368 21448 ? Sl 11:44 1:32 /usr/bin/proxysql --idle-threads -c /etc/proxysql.cnf --initial
重新初始化完毕之后,记得要重启ProxySQL:
systemctl restart proxysql
ps aux |grep proxysql
proxysql 38570 0.0 0.0 69664 2388 ? S 13:37 0:00 /usr/bin/proxysql --idle-threads -c /etc/proxysql.cnf
proxysql 38571 4.2 0.0 322824 15152 ? Sl 13:37 0:00 /usr/bin/proxysql --idle-threads -c /etc/proxysql.cnf
ProxySQL官方建议通过管理界面对ProxySQL进行管理,这样可以实现在线配置而不需要重新重启proxysql。
7.ProxySQL的本地数据库文件、日志的保存位置
目录为:/var/lib/proxysql/
ls /var/lib/proxysql/
proxysql-ca.pem proxysql-cert.pem proxysql.db proxysql-key.pem proxysql.log proxysql.pid proxysql_stats.db
460

被折叠的 条评论
为什么被折叠?



