• ProxySQL读写分离测试(续)


     
    Preface
     
        I've implemented ProxySQL on PXC yesterday but got some errors when configured query rules.I'm gonna do it again in my master-slave environment again.Let's see the procedure.
     
    Procedure
     
    Start ProxySQL.
    1 [root@zlm1 17:22:46 /var/lib]
    2 #service proxysql start
    3 Starting ProxySQL: ProxySQL is already running.
    4 
    5 [root@zlm1 17:23:16 /var/lib]
    6 #ps aux|grep proxysql
    7 root       666  0.0  0.5  58180  5180 ?        S    15:06   0:00 proxysql -c /etc/proxysql.cnf -D /var/lib/proxysql
    8 root       667  0.0  2.0 104152 21068 ?        Sl   15:06   0:02 proxysql -c /etc/proxysql.cnf -D /var/lib/proxysql
    9 root      5523  0.0  0.0 112640   960 pts/1    R+   15:55   0:00 grep --color=auto proxysql
    Login ProxySQL configure the hostgroups.
     1 [root@zlm1 17:27:11 ~]
     2 #mysql -uadmin -padmin -h127.0.0.1 -P6032
     3 mysql: [Warning] Using a password on the command line interface can be insecure.
     4 Welcome to the MySQL monitor.  Commands end with ; or g.
     5 Your MySQL connection id is 1
     6 Server version: 5.5.30 (ProxySQL Admin Module)
     7 
     8 Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
     9 
    10 Oracle is a registered trademark of Oracle Corporation and/or its
    11 affiliates. Other names may be trademarks of their respective
    12 owners.
    13 
    14 Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    15 
    16 admin@127.0.0.1:6032 [(none)]>select * from mysql_replication_hostgroups;
    17 Empty set (0.00 sec)
    18 
    19 admin@127.0.0.1:6032 [(none)]>insert into mysql_replication_hostgroups(writer_hostgroup,reader_hostgroup) values(10,20);
    20 Query OK, 1 row affected (0.00 sec)
    21 
    22 admin@127.0.0.1:6032 [(none)]>select * from mysql_replication_hostgroups;
    23 +------------------+------------------+---------+
    24 | writer_hostgroup | reader_hostgroup | comment |
    25 +------------------+------------------+---------+
    26 | 10               | 20               |         |
    27 +------------------+------------------+---------+
    28 1 row in set (0.00 sec)
    29 
    30 admin@127.0.0.1:6032 [(none)]>select * from runtime_mysql_replication_hostgroups;
    31 Empty set (0.00 sec)
    32 
    33 admin@127.0.0.1:6032 [(none)]>select * from disk.mysql_replication_hostgroups;
    34 Empty set (0.00 sec)
    35 
    36 admin@127.0.0.1:6032 [(none)]>load mysql servers to runtime;save mysql servers to disk;
    37 Query OK, 0 rows affected (0.00 sec)
    38 
    39 admin@127.0.0.1:6032 [(none)]>select * from runtime_mysql_replication_hostgroups;
    40 +------------------+------------------+---------+
    41 | writer_hostgroup | reader_hostgroup | comment |
    42 +------------------+------------------+---------+
    43 | 10               | 20               |         |
    44 +------------------+------------------+---------+
    45 1 row in set (0.00 sec)
    46 
    47 admin@127.0.0.1:6032 [(none)]>select * from disk.mysql_replication_hostgroups;
    48 +------------------+------------------+---------+
    49 | writer_hostgroup | reader_hostgroup | comment |
    50 +------------------+------------------+---------+
    51 | 10               | 20               |         |
    52 +------------------+------------------+---------+
    53 1 row in set (0.00 sec)
    Configure the mysql servers.
      1 admin@127.0.0.1:6032 [(none)]>select * from mysql_servers;
      2 Empty set (0.00 sec)
      3 
      4 admin@127.0.0.1:6032 [(none)]>insert into mysql_servers(hostgroup_id,hostname,max_connections,max_replication_lag) values(10,'192.168.56.100',100,300);
      5 Query OK, 1 row affected (0.00 sec)
      6 
      7 admin@127.0.0.1:6032 [(none)]>insert into mysql_servers(hostgroup_id,hostname,max_connections,max_replication_lag) values(20,'192.168.56.101',100,300);
      8 Query OK, 1 row affected (0.00 sec)
      9 
     10 admin@127.0.0.1:6032 [(none)]>select * from mysql_servers;
     11 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     12 | hostgroup_id | hostname       | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
     13 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     14 | 10           | 192.168.56.100 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
     15 | 20           | 192.168.56.101 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
     16 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     17 2 rows in set (0.00 sec)
     18 
     19 admin@127.0.0.1:6032 [(none)]>select * from runtime_mysql_servers;
     20 Empty set (0.00 sec)
     21 
     22 admin@127.0.0.1:6032 [(none)]>select * from disk.mysql_servers;
     23 Empty set (0.00 sec)
     24 
     25 admin@127.0.0.1:6032 [(none)]>load mysql servers to runtime;save mysql servers to disk;
     26 Query OK, 0 rows affected (0.00 sec)
     27 
     28 Query OK, 0 rows affected (0.05 sec)
     29 
     30 admin@127.0.0.1:6032 [(none)]>select * from runtime_mysql_servers;
     31 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     32 | hostgroup_id | hostname       | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
     33 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     34 | 20           | 192.168.56.101 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
     35 | 20           | 192.168.56.100 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
     36 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     37 2 rows in set (0.00 sec)
     38 
     39 //Why does the hostgroup_id in table "runtime_mysql_servers" still "20"?
     40 
     41 admin@127.0.0.1:6032 [(none)]>select * from disk.mysql_servers;
     42 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     43 | hostgroup_id | hostname       | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
     44 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     45 | 10           | 192.168.56.100 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
     46 | 20           | 192.168.56.101 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
     47 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     48 2 rows in set (0.00 sec)
     49 
     50 //The hostgroup_id in table "disk.mysql_servers" has taken effect.
     51 
     52 //Check the variables of "read_only" and "super_read_only".
     53 zlm@192.168.56.100:3306 [(none)]>show variables like '%read_only%';
     54 +-----------------------+-------+
     55 | Variable_name         | Value |
     56 +-----------------------+-------+
     57 | innodb_read_only      | OFF   |
     58 | read_only             | OFF   |
     59 | super_read_only       | OFF   |
     60 | transaction_read_only | OFF   |
     61 | tx_read_only          | OFF   |
     62 +-----------------------+-------+
     63 5 rows in set (0.00 sec)
     64 
     65 admin@127.0.0.1:6032 [(none)]>load mysql servers to runtime;
     66 Query OK, 0 rows affected (0.00 sec)
     67 
     68 admin@127.0.0.1:6032 [(none)]>select * from runtime_mysql_servers;
     69 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     70 | hostgroup_id | hostname       | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
     71 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     72 | 20           | 192.168.56.101 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
     73 | 20           | 192.168.56.100 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
     74 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     75 2 rows in set (0.00 sec)
     76 
     77 //It's still "20".
     78 
     79 admin@127.0.0.1:6032 [(none)]>select * from mysql_servers;
     80 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     81 | hostgroup_id | hostname       | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
     82 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     83 | 20           | 192.168.56.100 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
     84 | 20           | 192.168.56.101 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
     85 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
     86 2 rows in set (0.00 sec)
     87 
     88 //The "hostgroup_id" in mysql_serves also turned to be "20".Why does it happen?It's the reason why my query rule did not take effect yesterday.
     89 
     90 admin@127.0.0.1:6032 [(none)]>SELECT * FROM monitor.mysql_server_connect_log ORDER BY time_start_us DESC LIMIT 10;
     91 +----------------+------+------------------+-------------------------+---------------------------------------------------------------+
     92 | hostname       | port | time_start_us    | connect_success_time_us | connect_error                                                 |
     93 +----------------+------+------------------+-------------------------+---------------------------------------------------------------+
     94 | 192.168.56.100 | 3306 | 1533999241153417 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
     95 | 192.168.56.101 | 3306 | 1533999240299607 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
     96 | 192.168.56.101 | 3306 | 1533999181251828 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
     97 | 192.168.56.100 | 3306 | 1533999180299465 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
     98 | 192.168.56.101 | 3306 | 1533999120959376 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
     99 | 192.168.56.100 | 3306 | 1533999120299350 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
    100 | 192.168.56.100 | 3306 | 1533999061361175 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
    101 | 192.168.56.101 | 3306 | 1533999060299292 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
    102 | 192.168.56.100 | 3306 | 1533999001472876 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
    103 | 192.168.56.101 | 3306 | 1533999000299091 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
    104 +----------------+------+------------------+-------------------------+---------------------------------------------------------------+
    105 10 rows in set (0.00 sec)
    106 
    107 //It seems the privileges was configurated abnormally.
    108 
    109 zlm@192.168.56.100:3306 [(none)]>select user,host from mysql.user;
    110 +---------------+--------------+
    111 | user          | host         |
    112 +---------------+--------------+
    113 | repl          | 192.168.56.% |
    114 | zlm           | 192.168.56.% |
    115 | bkuser        | localhost    |
    116 | monitor       | localhost    |
    117 | mysql.session | localhost    |
    118 | mysql.sys     | localhost    |
    119 | root          | localhost    |
    120 +---------------+--------------+
    121 7 rows in set (0.00 sec)
    122 
    123 zlm@192.168.56.100:3306 [(none)]>drop user monitor@localhost;
    124 Query OK, 0 rows affected (0.00 sec)
    125 
    126 zlm@192.168.56.100:3306 [(none)]>grant all privileges on *.* to monitor@'%' identified by 'monitor';
    127 ERROR 1045 (28000): Access denied for user 'zlm'@'192.168.56.%' (using password: YES)
    128 zlm@192.168.56.100:3306 [(none)]>exit
    129 Bye
    130 
    131 [root@zlm1 17:59:50 /data/backup]
    132 #mysql -uroot -pPassw0rd -hlocalhost -S /tmp/mysql3306.sock
    133 mysql: [Warning] Using a password on the command line interface can be insecure.
    134 Welcome to the MySQL monitor.  Commands end with ; or g.
    135 Your MySQL connection id is 2758
    136 Server version: 5.7.21-log MySQL Community Server (GPL)
    137 
    138 Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    139 
    140 Oracle is a registered trademark of Oracle Corporation and/or its
    141 affiliates. Other names may be trademarks of their respective
    142 owners.
    143 
    144 Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    145 
    146 root@localhost:mysql3306.sock [(none)]>grant all privileges on *.* to monitor@'%' identified by 'monitor';
    147 Query OK, 0 rows affected, 1 warning (0.00 sec)
    148 
    149 root@localhost:mysql3306.sock [(none)]>select user,host from mysql.user;
    150 +---------------+--------------+
    151 | user          | host         |
    152 +---------------+--------------+
    153 | monitor       | %            |
    154 | repl          | 192.168.56.% |
    155 | zlm           | 192.168.56.% |
    156 | bkuser        | localhost    |
    157 | mysql.session | localhost    |
    158 | mysql.sys     | localhost    |
    159 | root          | localhost    |
    160 +---------------+--------------+
    161 7 rows in set (0.00 sec)
    162 
    163 admin@127.0.0.1:6032 [(none)]>SELECT * FROM monitor.mysql_server_connect_log ORDER BY time_start_us DESC LIMIT 10;
    164 +----------------+------+------------------+-------------------------+---------------------------------------------------------------+
    165 | hostname       | port | time_start_us    | connect_success_time_us | connect_error                                                 |
    166 +----------------+------+------------------+-------------------------+---------------------------------------------------------------+
    167 | 192.168.56.101 | 3306 | 1533999721321021 | 1040                    | NULL                                                          |
    168 | 192.168.56.100 | 3306 | 1533999720303754 | 441                     | NULL                                                          |
    169 | 192.168.56.100 | 3306 | 1533999661174268 | 370                     | NULL                                                          |
    170 | 192.168.56.101 | 3306 | 1533999660302486 | 1468                    | NULL                                                          |
    171 | 192.168.56.100 | 3306 | 1533999601377823 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
    172 | 192.168.56.101 | 3306 | 1533999600302394 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
    173 | 192.168.56.101 | 3306 | 1533999541205310 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
    174 | 192.168.56.100 | 3306 | 1533999540302168 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
    175 | 192.168.56.101 | 3306 | 1533999480925661 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
    176 | 192.168.56.100 | 3306 | 1533999480302043 | 0                       | Access denied for user 'monitor'@'zlm1' (using password: YES) |
    177 +----------------+------+------------------+-------------------------+---------------------------------------------------------------+
    178 10 rows in set (0.00 sec)
    179 
    180 //The monitor became normal.
    181 
    182 admin@127.0.0.1:6032 [(none)]>select * from mysql_servers;
    183 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    184 | hostgroup_id | hostname       | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
    185 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    186 | 10           | 192.168.56.100 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
    187 | 20           | 192.168.56.100 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
    188 | 10           | 192.168.56.101 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
    189 | 20           | 192.168.56.101 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
    190 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    191 4 rows in set (0.00 sec)
    192 
    193 admin@127.0.0.1:6032 [(none)]>delete from mysql_servers;
    194 Query OK, 4 rows affected (0.00 sec)
    195 
    196 admin@127.0.0.1:6032 [(none)]>insert into mysql_servers(hostgroup_id,hostname,max_connections,max_replication_lag) values(10,'192.168.56.100',100,300),(20,'192.168.56.101',100,300);
    197 Query OK, 2 rows affected (0.00 sec)
    198 
    199 admin@127.0.0.1:6032 [(none)]>select * from mysql_servers;
    200 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    201 | hostgroup_id | hostname       | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
    202 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    203 | 10           | 192.168.56.100 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
    204 | 20           | 192.168.56.101 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
    205 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    206 2 rows in set (0.00 sec)
    207 
    208 admin@127.0.0.1:6032 [(none)]>load mysql servers to runtime;save mysql servers to disk;
    209 Query OK, 0 rows affected (0.00 sec)
    210 
    211 Query OK, 0 rows affected (0.02 sec)
    212 
    213 admin@127.0.0.1:6032 [(none)]>select * from mysql_servers;
    214 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    215 | hostgroup_id | hostname       | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
    216 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    217 | 10           | 192.168.56.100 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
    218 | 10           | 192.168.56.101 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
    219 | 20           | 192.168.56.101 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
    220 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    221 3 rows in set (0.00 sec)
    222 
    223 //Why there're three records in table "mysql_servers"?
    224 
    225 admin@127.0.0.1:6032 [(none)]>select * from runtime_mysql_servers;
    226 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    227 | hostgroup_id | hostname       | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
    228 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    229 | 10           | 192.168.56.100 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
    230 | 20           | 192.168.56.101 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
    231 | 10           | 192.168.56.101 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
    232 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    233 3 rows in set (0.00 sec)
    234 
    235 admin@127.0.0.1:6032 [(none)]>select * from disk.mysql_servers;
    236 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    237 | hostgroup_id | hostname       | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
    238 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    239 | 10           | 192.168.56.100 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
    240 | 20           | 192.168.56.101 | 3306 | ONLINE | 1      | 0           | 100             | 300                 | 0       | 0              |         |
    241 +--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
    242 2 rows in set (0.00 sec)
    243 
    244 admin@127.0.0.1:6032 [(none)]>show variables like '%also%';
    245 +-------------------------------------+-------+
    246 | Variable_name                       | Value |
    247 +-------------------------------------+-------+
    248 | mysql-monitor_writer_is_also_reader | true  |
    249 +-------------------------------------+-------+
    250 1 row in set (0.00 sec)
    251 
    252 admin@127.0.0.1:6032 [(none)]>SELECT * FROM monitor.mysql_server_connect_log ORDER BY time_start_us DESC LIMIT 10;
    253 +----------------+------+------------------+-------------------------+---------------+
    254 | hostname       | port | time_start_us    | connect_success_time_us | connect_error |
    255 +----------------+------+------------------+-------------------------+---------------+
    256 | 192.168.56.100 | 3306 | 1534001701142271 | 357                     | NULL          |
    257 | 192.168.56.101 | 3306 | 1534001700318759 | 1260                    | NULL          |
    258 | 192.168.56.101 | 3306 | 1534001641047510 | 1215                    | NULL          |
    259 | 192.168.56.100 | 3306 | 1534001640318616 | 435                     | NULL          |
    260 | 192.168.56.101 | 3306 | 1534001581271612 | 1089                    | NULL          |
    261 | 192.168.56.100 | 3306 | 1534001580317548 | 201                     | NULL          |
    262 | 192.168.56.100 | 3306 | 1534001521182217 | 1198                    | NULL          |
    263 | 192.168.56.101 | 3306 | 1534001520317373 | 922                     | NULL          |
    264 | 192.168.56.101 | 3306 | 1534001461241620 | 1110                    | NULL          |
    265 | 192.168.56.100 | 3306 | 1534001460316352 | 326                     | NULL          |
    266 +----------------+------+------------------+-------------------------+---------------+
    267 10 rows in set (0.00 sec)
    Configure the mysql users.
     1 admin@127.0.0.1:6032 [(none)]>select * from mysql_users;
     2 Empty set (0.00 sec)
     3 
     4 admin@127.0.0.1:6032 [(none)]>insert into mysql_users(username,password,active,default_hostgroup,default_schema) values('zlm','zlmzlm',1,10,'zlm');
     5 Query OK, 1 row affected (0.00 sec)
     6 
     7 admin@127.0.0.1:6032 [(none)]>select * from mysql_users;
     8 +----------+----------+--------+---------+-------------------+----------------+---------------+------------------------+--------------+---------+----------+-----------------+
     9 | username | password | active | use_ssl | default_hostgroup | default_schema | schema_locked | transaction_persistent | fast_forward | backend | frontend | max_connections |
    10 +----------+----------+--------+---------+-------------------+----------------+---------------+------------------------+--------------+---------+----------+-----------------+
    11 | zlm      | zlmzlm   | 1      | 0       | 10                | zlm            | 0             | 1                      | 0            | 1       | 1        | 10000           |
    12 +----------+----------+--------+---------+-------------------+----------------+---------------+------------------------+--------------+---------+----------+-----------------+
    13 1 row in set (0.00 sec)
    14 
    15 admin@127.0.0.1:6032 [(none)]>select * from runtime_mysql_users;
    16 Empty set (0.00 sec)
    17 
    18 admin@127.0.0.1:6032 [(none)]>select * from disk.mysql_users;
    19 Empty set (0.00 sec)
    20 
    21 admin@127.0.0.1:6032 [(none)]>load mysql users to runtime;save mysql users to disk;
    22 Query OK, 0 rows affected (0.00 sec)
    23 
    24 Query OK, 0 rows affected (0.01 sec)
    25 
    26 admin@127.0.0.1:6032 [(none)]>select * from runtime_mysql_users;
    27 +----------+-------------------------------------------+--------+---------+-------------------+----------------+---------------+------------------------+--------------+---------+----------+-----------------+
    28 | username | password                                  | active | use_ssl | default_hostgroup | default_schema | schema_locked | transaction_persistent | fast_forward | backend | frontend | max_connections |
    29 +----------+-------------------------------------------+--------+---------+-------------------+----------------+---------------+------------------------+--------------+---------+----------+-----------------+
    30 | zlm      | *512FB3FAA6F522E351929CAC70AD8EBB0F5901B6 | 1      | 0       | 10                | zlm            | 0             | 1                      | 0            | 0       | 1        | 10000           |
    31 | zlm      | *512FB3FAA6F522E351929CAC70AD8EBB0F5901B6 | 1      | 0       | 10                | zlm            | 0             | 1                      | 0            | 1       | 0        | 10000           |
    32 +----------+-------------------------------------------+--------+---------+-------------------+----------------+---------------+------------------------+--------------+---------+----------+-----------------+
    33 2 rows in set (0.00 sec)
    34 
    35 admin@127.0.0.1:6032 [(none)]>select * from disk.mysql_users;
    36 +----------+----------+--------+---------+-------------------+----------------+---------------+------------------------+--------------+---------+----------+-----------------+
    37 | username | password | active | use_ssl | default_hostgroup | default_schema | schema_locked | transaction_persistent | fast_forward | backend | frontend | max_connections |
    38 +----------+----------+--------+---------+-------------------+----------------+---------------+------------------------+--------------+---------+----------+-----------------+
    39 | zlm      | zlmzlm   | 1      | 0       | 10                | zlm            | 0             | 1                      | 0            | 1       | 1        | 10000           |
    40 +----------+----------+--------+---------+-------------------+----------------+---------------+------------------------+--------------+---------+----------+-----------------+
    41 1 row in set (0.00 sec)
    Configure the query rules.
     1 admin@127.0.0.1:6032 [(none)]>select * from mysql_query_rules;
     2 Empty set (0.00 sec)
     3 
     4 admin@127.0.0.1:6032 [(none)]>insert into mysql_query_rules(active,username,match_pattern,schemaname,destination_hostgroup,apply) values(1,'zlm','^select','zlm',20,1);
     5 Query OK, 1 row affected (0.00 sec)
     6 
     7 admin@127.0.0.1:6032 [(none)]>select active,username,match_pattern,schemaname,destination_hostgroup,apply from mysql_query_rules;
     8 +--------+----------+---------------+------------+-----------------------+-------+
     9 | active | username | match_pattern | schemaname | destination_hostgroup | apply |
    10 +--------+----------+---------------+------------+-----------------------+-------+
    11 | 1      | zlm      | ^select       | zlm        | 20                    | 1     |
    12 +--------+----------+---------------+------------+-----------------------+-------+
    13 1 row in set (0.00 sec)
    14 
    15 admin@127.0.0.1:6032 [(none)]>select * from runtime_mysql_query_rules;
    16 Empty set (0.00 sec)
    17 
    18 admin@127.0.0.1:6032 [(none)]>select * from disk.mysql_query_rules;
    19 Empty set (0.00 sec)
    20 
    21 admin@127.0.0.1:6032 [(none)]>load mysql query rules to runtime;save mysql query rules to disk;
    22 Query OK, 0 rows affected (0.00 sec)
    23 
    24 admin@127.0.0.1:6032 [(none)]>select active,username,match_pattern,schemaname,destination_hostgroup,apply from runtime_mysql_query_rules;
    25 +--------+----------+---------------+------------+-----------------------+-------+
    26 | active | username | match_pattern | schemaname | destination_hostgroup | apply |
    27 +--------+----------+---------------+------------+-----------------------+-------+
    28 | 1      | zlm      | ^select       | zlm        | 20                    | 1     |
    29 +--------+----------+---------------+------------+-----------------------+-------+
    30 1 row in set (0.00 sec)
    31 
    32 admin@127.0.0.1:6032 [(none)]>select active,username,match_pattern,schemaname,destination_hostgroup,apply from disk.mysql_query_rules;
    33 +--------+----------+---------------+------------+-----------------------+-------+
    34 | active | username | match_pattern | schemaname | destination_hostgroup | apply |
    35 +--------+----------+---------------+------------+-----------------------+-------+
    36 | 1      | zlm      | ^select       | zlm        | 20                    | 1     |
    37 +--------+----------+---------------+------------+-----------------------+-------+
    38 1 row in set (0.00 sec)
    Test whether proxy can seperate writing and reading operations.
      1 admin@127.0.0.1:6032 [(none)]>show create table stats.stats_mysql_query_digestG
      2 *************************** 1. row ***************************
      3        table: stats_mysql_query_digest
      4 Create Table: CREATE TABLE stats_mysql_query_digest (
      5     hostgroup INT,
      6     schemaname VARCHAR NOT NULL,
      7     username VARCHAR NOT NULL,
      8     digest VARCHAR NOT NULL,
      9     digest_text VARCHAR NOT NULL,
     10     count_star INTEGER NOT NULL,
     11     first_seen INTEGER NOT NULL,
     12     last_seen INTEGER NOT NULL,
     13     sum_time INTEGER NOT NULL,
     14     min_time INTEGER NOT NULL,
     15     max_time INTEGER NOT NULL,
     16     PRIMARY KEY(hostgroup, schemaname, username, digest))
     17 1 row in set (0.00 sec)
     18 
     19 admin@127.0.0.1:6032 [(none)]>select hostgroup,schemaname,username,substr(digest_text,120,-120),count_star from stats_mysql_query_digest_reset;
     20 Empty set (0.00 sec)
     21 
     22 [root@zlm1 18:36:17 /data/backup]
     23 #mysql -uzlm -pzlmzlm -h192.168.56.100 -P6033
     24 mysql: [Warning] Using a password on the command line interface can be insecure.
     25 Welcome to the MySQL monitor.  Commands end with ; or g.
     26 Your MySQL connection id is 6
     27 Server version: 5.5.30 (ProxySQL)
     28 
     29 Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
     30 
     31 Oracle is a registered trademark of Oracle Corporation and/or its
     32 affiliates. Other names may be trademarks of their respective
     33 owners.
     34 
     35 Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
     36 
     37 zlm@192.168.56.100:6033 [(none)]>show tables;
     38 +---------------+
     39 | Tables_in_zlm |
     40 +---------------+
     41 | test          |
     42 +---------------+
     43 1 row in set (0.00 sec)
     44 
     45 zlm@192.168.56.100:6033 [(none)]>select * from test;
     46 +------+------+
     47 | id   | name |
     48 +------+------+
     49 |    1 | aaa  |
     50 |    2 | bbb  |
     51 |    3 | ccc  |
     52 +------+------+
     53 3 rows in set (0.00 sec)
     54 
     55 zlm@192.168.56.100:6033 [(none)]>insert into test values(4,'eee');
     56 Query OK, 1 row affected (0.00 sec)
     57 
     58 zlm@192.168.56.100:6033 [(none)]>update test set name='ddd' where id=4;
     59 Query OK, 1 row affected (0.00 sec)
     60 Rows matched: 1  Changed: 1  Warnings: 0
     61 
     62 zlm@192.168.56.100:6033 [(none)]>select * from test;
     63 +------+------+
     64 | id   | name |
     65 +------+------+
     66 |    1 | aaa  |
     67 |    2 | bbb  |
     68 |    3 | ccc  |
     69 |    4 | ddd  |
     70 +------+------+
     71 4 rows in set (0.00 sec)
     72 
     73 admin@127.0.0.1:6032 [(none)]>select hostgroup,schemaname,username,substr(digest_text,120,-120),count_star from stats_mysql_query_digest;
     74 +-----------+------------+----------+-----------------------------------+------------+
     75 | hostgroup | schemaname | username | substr(digest_text,120,-120)      | count_star |
     76 +-----------+------------+----------+-----------------------------------+------------+
     77 | 10        | zlm        | zlm      | update test set name=? where id=? | 1          |
     78 | 20        | zlm        | zlm      | select * from test                | 2          |
     79 | 10        | zlm        | zlm      | show tables                       | 1          |
     80 | 10        | zlm        | zlm      | select USER()                     | 1          |
     81 | 10        | zlm        | zlm      | insert into test values(?,?)      | 1          |
     82 | 10        | zlm        | zlm      | select @@version_comment limit ?  | 1          |
     83 +-----------+------------+----------+-----------------------------------+------------+
     84 6 rows in set (0.00 sec)
     85 
     86 //What baffled me is that why the "select USER()" and "select @@version_comment limit ?" were not in the hostgroup "20"?
     87 
     88 zlm@192.168.56.100:6033 [(none)]>select @@hostname;
     89 +------------+
     90 | @@hostname |
     91 +------------+
     92 | zlm2       |
     93 +------------+
     94 1 row in set (0.00 sec)
     95 
     96 //The select operation has been executed on slave zlm2.
     97 
     98 admin@127.0.0.1:6032 [(none)]>select hostgroup,schemaname,username,substr(digest_text,120,-120),count_star from stats_mysql_query_digest;
     99 +-----------+------------+----------+-----------------------------------+------------+
    100 | hostgroup | schemaname | username | substr(digest_text,120,-120)      | count_star |
    101 +-----------+------------+----------+-----------------------------------+------------+
    102 | 10        | zlm        | zlm      | update test set name=? where id=? | 1          |
    103 | 20        | zlm        | zlm      | select * from test                | 2          |
    104 | 10        | zlm        | zlm      | show tables                       | 1          |
    105 | 10        | zlm        | zlm      | select USER()                     | 1          |
    106 | 20        | zlm        | zlm      | select @@hostname                 | 1          |
    107 | 10        | zlm        | zlm      | insert into test values(?,?)      | 1          |
    108 | 10        | zlm        | zlm      | select @@version_comment limit ?  | 1          |
    109 +-----------+------------+----------+-----------------------------------+------------+
    110 7 rows in set (0.00 sec)
    111 
    112 //The new statement of "select @@hostname" was put into hostgroup "20" correctly.
     
  • 相关阅读:
    第八周
    请停止使用strncpy
    WER设置
    如何在dump文件里找到真正的类this指针
    Visual Studio /analyze不好之处---漏报(四)
    Visual Studio /analyze不好之处---漏报(三)
    Visual Studio /analyze不好之处---漏报(二)
    Visual Studio /analyze不好之处(一)
    Visual Studio /analyze的好处
    符号杂谈
  • 原文地址:https://www.cnblogs.com/aaron8219/p/9458301.html
Copyright © 2020-2023  润新知