加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

proxysql的安装过程

发布时间:2022-01-19 13:25:14 所属栏目:MySql教程 来源:互联网
导读:本篇内容介绍了proxysql的安装步骤的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! MySQL环境信息: 操作系统:CentOS release 6.9 主库: 192.168.14
       本篇内容介绍了“proxysql的安装步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
 
MySQL环境信息:
 
操作系统:CentOS release 6.9
 
主库: 192.168.140.51
 
从库: 192.168.140.52
 
从库: 192.168.16.150
 
proxysql中间件: 192.168.140.52
 
备注:两个从库都需要开启read_only=on,命令为
 
mysql> set global read_only=on
 
编辑proxysql.repo文件
 
#vi /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
 
#yum install proxysql -y
 
Loaded plugins: fastestmirror
 
Setting up Install Process
 
Determining fastest mirrors
 
epel/metalink                                                                                                          | 8.9 kB     00:00     
 
 * base: mirrors.huaweicloud.com
 
 * epel: mirrors.ustc.edu.cn
 
 * extras: mirrors.huaweicloud.com
 
 * updates: mirrors.163.com
 
base                                                                                                                   | 3.7 kB     00:00     
 
epel                                                                                                                   | 3.2 kB     00:00     
 
epel/primary                                                                                                           | 3.2 MB     00:00     
 
epel                                                                                                                              12515/12515
 
extras                                                                                                                 | 3.4 kB     00:00     
 
percona                                                                                                                | 2.9 kB     00:00     
 
percona/primary_db                                                                                                     | 346 kB     00:09     
 
percona-release-noarch                                                                                                 | 2.9 kB     00:00     
 
percona-release-x86_64                                                                                                 | 2.9 kB     00:00     
 
percona-release-x86_64/primary_db                                                                                      | 346 kB     00:09     
 
proxysql_repo                                                                                                          | 2.9 kB     00:00     
 
proxysql_repo/primary_db                                                                                               |  12 kB     00:00     
 
updates                                                                                                                | 3.4 kB     00:00     
 
updates/primary_db                                                                                                     | 1.3 MB     00:00     
 
Resolving Dependencies
 
--> Running transaction check
 
---> Package proxysql.x86_64 0:1.4.12-1 will be installed
 
--> Finished Dependency Resolution
 
Dependencies Resolved
 
==============================================================================================================================================
 
 Package                          Arch                           Version                          Repository                             Size
 
==============================================================================================================================================
 
Installing:
 
 proxysql                         x86_64                         1.4.12-1                         proxysql_repo                         5.9 M
 
Transaction Summary
 
==============================================================================================================================================
 
Install       1 Package(s)
 
Total download size: 5.9 M
 
Installed size: 22 M
 
Downloading Packages:
 
proxysql-1.4.12-1-centos67.x86_64.rpm                                                                                  | 5.9 MB     00:09     
 
warning: rpmts_HdrFromFdno: Header V4 RSA/SHA256 Signature, key ID 79953b49: NOKEY
 
Retrieving key from http://repo.proxysql.com/ProxySQL/repo_pub_key
 
Importing GPG key 0x79953B49:
 
 Userid: "rene cannnao (Proxysql Repository) <rene.cannao@gmail.com>"
 
 From  : http://repo.proxysql.com/ProxySQL/repo_pub_key
 
Running rpm_check_debug
 
Running Transaction Test
 
Transaction Test Succeeded
 
Running Transaction
 
  Installing : proxysql-1.4.12-1.x86_64                                                                                                   1/1
 
  Verifying  : proxysql-1.4.12-1.x86_64                                                                                                   1/1
 
Installed:
 
  proxysql.x86_64 0:1.4.12-1                                                                                                                  
 
Complete!
 
启动proxysql:
 
#service proxysql start
 
Starting ProxySQL: 2018-10-09 09:05:58 [INFO] Using config file /etc/proxysql.cnf
 
DONE!
 
查看版本信息:
 
#proxysql --version
 
ProxySQL version 1.4.12-9-g216b872, codename Truls
 
登陆proxysql:
 
设置prompt:
 
export MYSQL_PS1="u@h [d] r:m:s>>>"
 
进入ProxySQL:
 
#mysql -uadmin -padmin -h227.0.0.1 -P6032
 
admin@127.0.0.1 [(none)] 05:27:35>>>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.01 sec)
 
备注:6032是proxysql的管理端口号.
 
数据库信息介绍:
 
main 内存配置数据库,表里存放后端db实例、用户验证、路由规则等信息。
 
disk 是持久化到硬盘的配置。
 
stats是统计信息的汇总,是proxysql运行抓取的统计信息,包括到后端各命令的执行次数、流量、processlist、查询种类汇总/执行时间等。
 
monitor是一些监控的收集信息,主要是对后端db的健康/延迟检查等。
 
在master上添加proxysql监控账号和对外访问账号:
 
mysql> create user monitor@'192.168.140.%' identified by '123456';
 
Query OK, 0 rows affected (0.29 sec)
 
mysql>
 
mysql> create user monitor@'192.168.16.%' identified by '123456';
 
Query OK, 0 rows affected (0.01 sec)
 
mysql> grant all privileges on *.* to monitor@'192.168.140.%';
 
Query OK, 0 rows affected (0.04 sec)
 
mysql> grant all privileges on *.* to monitor@'192.168.16.%';
 
Query OK, 0 rows affected (0.00 sec)
 
mysql>
 
mysql> create user dsf@'%' identified by 'dsf';
 
Query OK, 0 rows affected (0.09 sec)
 
mysql> grant all privileges on *.* to dsf@'%' with grant option;
 
Query OK, 0 rows affected (0.06 sec)
 
mysql> flush privileges;
 
Query OK, 0 rows affected (0.12 sec)
 
mysql> use main
 
Reading table information for completion of table and column names
 
You can turn off this feature to get a quicker startup with -A
 
Database changed
 
mysql> show tables;
 
+--------------------------------------------+
 
| tables                                     |
 
+--------------------------------------------+
 
| global_variables                           |
 
| mysql_collations                           |
 
| 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_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                                  |
 
+--------------------------------------------+
 
20 rows in set (0.00 sec)
 
mysql> show create table mysql_servers G
 
*************************** 1. row ***************************
 
       table: mysql_servers
 
Create Table: CREATE TABLE mysql_servers (
 
    hostgroup_id INT CHECK (hostgroup_id>=0) NOT NULL DEFAULT 0,
 
    hostname VARCHAR NOT NULL,
 
    port INT NOT NULL DEFAULT 3306,
 
    status VARCHAR CHECK (UPPER(status) IN ('ONLINE','SHUNNED','OFFLINE_SOFT', 'OFFLINE_HARD')) NOT NULL DEFAULT 'ONLINE',
 
    weight INT CHECK (weight >= 0) NOT NULL DEFAULT 1,
 
    compression INT CHECK (compression >=0 AND compression <= 102400) NOT NULL DEFAULT 0,
 
    max_connections INT CHECK (max_connections >=0) NOT NULL DEFAULT 1000,
 
    max_replication_lag INT CHECK (max_replication_lag >= 0 AND max_replication_lag <= 126144000) NOT NULL DEFAULT 0,
 
    use_ssl INT CHECK (use_ssl IN(0,1)) NOT NULL DEFAULT 0,
 
    max_latency_ms INT UNSIGNED CHECK (max_latency_ms>=0) NOT NULL DEFAULT 0,
 
    comment VARCHAR NOT NULL DEFAULT '',
 
    PRIMARY KEY (hostgroup_id, hostname, port) )
 
1 row in set (0.00 sec)
 
添加主从服务器信息列表:
 
mysql> insert into mysql_servers(hostgroup_id,hostname,port) values(10,'192.168.140.51',3306);
 
Query OK, 1 row affected (0.00 sec)
 
mysql> insert into mysql_servers(hostgroup_id,hostname,port) values(10,'192.168.140.52',3306);
 
Query OK, 1 row affected (0.00 sec)
 
mysql> insert into mysql_servers(hostgroup_id,hostname,port) values(10,'192.168.16.150',3306);
 
Query OK, 1 row affected (0.00 sec)
 
从memory加载到runtime:
 
mysql> load mysql servers to runtime;
 
Query OK, 0 rows affected (0.05 sec)
 
持久化到磁盘:
 
mysql> save mysql servers to disk;
 
Query OK, 0 rows affected (0.56 sec)
 
查看server状态信息,三台应该都是online:
 
mysql>  select * from mysql_servers;
 
+--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
 
| hostgroup_id | hostname       | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
 
+--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
 
| 10           | 192.168.140.51 | 3306 | ONLINE | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
 
| 10           | 192.168.140.52 | 3306 | ONLINE | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
 
| 10           | 192.168.16.150 | 3306 | ONLINE | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
 
+--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
 
3 rows in set (0.00 sec)
 
为proxysql配置监控账号:
 
mysql> set mysql-monitor_username='monitor';
 
Query OK, 1 row affected (0.00 sec)
 
mysql> set mysql-monitor_password='123456';
 
Query OK, 1 row affected (0.00 sec)
 
mysql> load mysql variables to runtime;
 
Query OK, 0 rows affected (0.00 sec)
 
mysql> save mysql variables to disk;
 
Query OK, 97 rows affected (0.29 sec)
 
查看监控信息,监控正常,没有任何报错:
 
mysql> select * from monitor.mysql_server_connect_log order by time_start_us desc limit 6;
 
+----------------+------+------------------+-------------------------+---------------+
 
| hostname       | port | time_start_us    | connect_success_time_us | connect_error |
 
+----------------+------+------------------+-------------------------+---------------+
 
| 192.168.140.51 | 3306 | 1539064061326592 | 3513                    | NULL          |
 
| 192.168.140.52 | 3306 | 1539064060571978 | 2129                    | NULL          |
 
| 192.168.16.150 | 3306 | 1539064059817210 | 3859                    | NULL          |
 
| 192.168.140.52 | 3306 | 1539064000942524 | 1271                    | NULL          |
 
| 192.168.140.51 | 3306 | 1539064000379889 | 3259                    | NULL          |
 
| 192.168.16.150 | 3306 | 1539063999817183 | 2875                    | NULL          |
 
+----------------+------+------------------+-------------------------+---------------+
 
6 rows in set (0.01 sec)
 
配置读写分离:
 
设置proxysql主从分组信息:
 
mysql> show create table mysql_replication_hostgroups G
 
*************************** 1. row ***************************
 
       table: mysql_replication_hostgroups
 
Create Table: CREATE TABLE mysql_replication_hostgroups (
 
    writer_hostgroup INT CHECK (writer_hostgroup>=0) NOT NULL PRIMARY KEY,
 
    reader_hostgroup INT NOT NULL CHECK (reader_hostgroup<>writer_hostgroup AND reader_hostgroup>0),
 
    comment VARCHAR NOT NULL DEFAULT '', UNIQUE (reader_hostgroup))
 
1 row in set (0.00 sec)
 
mysql> insert into mysql_replication_hostgroups values(10,20,'proxy info');
 
Query OK, 1 row affected (0.00 sec)
 
mysql> load mysql servers to runtime;
 
Query OK, 0 rows affected (0.00 sec)
 
mysql>
 
mysql> save mysql servers to disk;
 
Query OK, 0 rows affected (0.47 sec)
 
mysql> select * from mysql_replication_hostgroups;
 
+------------------+------------------+------------+
 
| writer_hostgroup | reader_hostgroup | comment    |
 
+------------------+------------------+------------+
 
| 10               | 20               | proxy info |
 
+------------------+------------------+------------+
 
1 row in set (0.00 sec)
 
mysql> select * from mysql_servers;
 
+--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
 
| hostgroup_id | hostname       | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
 
+--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
 
| 10           | 192.168.140.51 | 3306 | ONLINE | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
 
| 20           | 192.168.16.150 | 3306 | ONLINE | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
 
| 20           | 192.168.140.52 | 3306 | ONLINE | 1      | 0           | 1000            | 0                   | 0       | 0              |         |
 
+--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
 
3 rows in set (0.00 sec)
 
备注:
 
proxysql会根据server的read_only的值将服务器自动进行分组,read_only=0的分到编号为10的写组,read_only=1的分到编号为20的读组。
 
配置对外访问账号,开启事务持久化保护:
 
mysql> insert into mysql_users(username,password,default_hostgroup) values('dsf','dsf',10);
 
Query OK, 1 row affected (0.00 sec)
 
mysql> update mysql_users set transaction_persistent=1 where username='dsf';
 
Query OK, 1 row affected (0.00 sec)
 
mysql> load mysql users to runtime;
 
Query OK, 0 rows affected (0.00 sec)
 
mysql>
 
mysql>
 
mysql> save mysql users to disk;
 
Query OK, 0 rows affected (0.10 sec)
 
验证主服务器,需要指定对外端口号6033:
 
#mysql -udsf -pdsf -h 192.168.140.52 -P 6033 -e "show slave hosts"
 
mysql: [Warning] Using a password on the command line interface can be insecure.
 
+-----------+------+------+-----------+--------------------------------------+
 
| Server_id | Host | Port | Master_id | Slave_UUID                           |
 
+-----------+------+------+-----------+--------------------------------------+
 
|     16150 |      | 3306 |     14051 | e982cd68-cac0-11e8-8cfc-525400a6c4f1 |
 
|     14052 |      | 3306 |     14051 | dab0225f-952d-11e8-ac10-52540098ed65 |
 
+-----------+------+------+-----------+--------------------------------------+
 
#mysql -udsf -pdsf -h 192.168.140.52 -P 6033 -e "select @@hostname"
 
mysql: [Warning] Using a password on the command line interface can be insecure.
 
+--------------------+
 
| @@hostname         |
 
+--------------------+
 
| test-140-51        |
 
+--------------------+
 
“proxysql的安装步骤”的内容就介绍到这里了,感谢大家的阅读。

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读