日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ProxySQL 配置详解及读写分离(+GTID)等功能说明 (完整篇)2

發(fā)布時間:2024/1/8 数据库 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ProxySQL 配置详解及读写分离(+GTID)等功能说明 (完整篇)2 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2) 從數(shù)據(jù)庫mysql-slave1 (172.16.60.212)的配置操作

與主服務(wù)器配置大概一致,除了server_id不一致外,從服務(wù)器還可以在配置文件里面添加:"read_only=on"?,

使從服務(wù)器只能進(jìn)行讀取操作,此參數(shù)對超級用戶無效,并且不會影響從服務(wù)器的復(fù)制;

[root@mysql-slave1 ~]# >/etc/my.cnf

[root@mysql-slave1 ~]# vim /etc/my.cnf

[mysqld]

datadir =?/var/lib/mysql

socket =?/var/lib/mysql/mysql.sock

????????

symbolic-links = 0

????????

log-error =?/var/log/mysqld.log

pid-file?=?/var/run/mysqld/mysqld.pid

????

#GTID:

server_id = 2

gtid_mode = on

enforce_gtid_consistency = on

??????

#binlog

log_bin = master-bin

log-slave-updates = 1

binlog_format = row

sync-master-info = 1

sync_binlog = 1

??????

#relay log

skip_slave_start = 1

read_only = on

?

配置完成之后,別忘了重啟Mysql

[root@mysql-slave1 ~]# systemctl restart mysqld

?

接著登錄mysql,做主從同步

[root@mysql-slave1 ~]# mysql -p123456

........

mysql> show databases;

+--------------------+

| Database?????????? |

+--------------------+

| information_schema |

| mysql????????????? |

| performance_schema |

|?test???????????????|

+--------------------+

4 rows?in?set?(0.00 sec)

???

在從數(shù)據(jù)庫里,使用change master 配置主從復(fù)制

mysql> stop slave;

Query OK, 0 rows affected, 1 warning (0.00 sec)

?

mysql> change master to master_host='172.16.60.211',master_user='slave',master_password='slave@123',master_auto_position=1;

Query OK, 0 rows affected, 2 warnings (0.24 sec)

?

mysql> start slave;

Query OK, 0 rows affected (0.02 sec)

?

mysql> show slave status \G;

*************************** 1. row ***************************

???????????????Slave_IO_State: Waiting?for?master to send event

??????????????????Master_Host: 172.16.60.211

??????????????????Master_User: slave

??????????????????Master_Port: 3306

????????????????Connect_Retry: 60

??????????????Master_Log_File: master-bin.000002

??????????Read_Master_Log_Pos: 2069

???????????????Relay_Log_File: mysql-slave1-relay-bin.000002

????????????????Relay_Log_Pos: 2284

????????Relay_Master_Log_File: master-bin.000002

?????????????Slave_IO_Running: Yes

????????????Slave_SQL_Running: Yes

............

............

???????????Retrieved_Gtid_Set: fc39b161-22ca-11e9-a638-005056ac6820:1-8

????????????Executed_Gtid_Set: 2afbc2f5-22cb-11e9-b9c0-00505688047c:1-2,

fc39b161-22ca-11e9-a638-005056ac6820:1-8

????????????????Auto_Position: 1

?????????Replicate_Rewrite_DB:

?????????????????Channel_Name:

???????????Master_TLS_Version:

1 row?in?set?(0.00 sec)

?

ERROR:

No query specified

?

查看從庫的gtid

mysql> show global variables like?'%gtid%';

+----------------------------------+------------------------------------------------------------------------------------+

| Variable_name??????????????????? | Value????????????????????????????????????????????????????????????????????????????? |

+----------------------------------+------------------------------------------------------------------------------------+

| binlog_gtid_simple_recovery????? | ON???????????????????????????????????????????????????????????????????????????????? |

| enforce_gtid_consistency???????? | ON???????????????????????????????????????????????????????????????????????????????? |

| gtid_executed??????????????????? | 2afbc2f5-22cb-11e9-b9c0-00505688047c:1-2,

fc39b161-22ca-11e9-a638-005056ac6820:1-8 |

| gtid_executed_compression_period | 1000?????????????????????????????????????????????????????????????????????????????? |

| gtid_mode??????????????????????? | ON???????????????????????????????????????????????????????????????????????????????? |

| gtid_owned?????????????????????? |??????????????????????????????????????????????????????????????????????????????????? |

| gtid_purged????????????????????? | 2afbc2f5-22cb-11e9-b9c0-00505688047c:1-2?????????????????????????????????????????? |

| session_track_gtids????????????? | OFF??????????????????????????????????????????????????????????????????????????????? |

+----------------------------------+------------------------------------------------------------------------------------+

8 rows?in?set?(0.01 sec)

?

接著查看從數(shù)據(jù)庫的數(shù)據(jù),發(fā)現(xiàn)kevin庫已經(jīng)同步過來了!

mysql> show databases;

+--------------------+

| Database?????????? |

+--------------------+

| information_schema |

| kevin????????????? |

| mysql????????????? |

| performance_schema |

| sys??????????????? |

+--------------------+

5 rows?in?set?(0.00 sec)

?

mysql>?select?* from kevin.haha;

+----+----------+

|?id?| name???? |

+----+----------+

|? 1 | congcong |

|? 2 | huihui?? |

|? 3 | grace??? |

+----+----------+

3 rows?in?set?(0.00 sec)

?

3) 從數(shù)據(jù)庫mysql-slave2 (172.16.60.213)的配置操作

[root@mysql-slave2 ~]# >/etc/my.cnf

[root@mysql-slave2 ~]# vim /etc/my.cnf

[mysqld]

datadir =?/var/lib/mysql

socket =?/var/lib/mysql/mysql.sock

????????

symbolic-links = 0

????????

log-error =?/var/log/mysqld.log

pid-file?=?/var/run/mysqld/mysqld.pid

????

#GTID:

server_id = 3

gtid_mode = on

enforce_gtid_consistency = on

??????

#binlog

log_bin = master-bin

log-slave-updates = 1

binlog_format = row

sync-master-info = 1

sync_binlog = 1

??????

#relay log

skip_slave_start = 1

read_only = on

?

重啟mysqld

[root@mysql-slave2 ~]#? systemctl restart mysqld?

?

登錄mysql,做主從復(fù)制

[root@mysql-slave2 ~]# mysql -p123456

.........

mysql> stop slave;

Query OK, 0 rows affected, 1 warning (0.00 sec)

?

mysql> change master to master_host='172.16.60.211',master_user='slave',master_password='slave@123',master_auto_position=1;

Query OK, 0 rows affected, 2 warnings (0.17 sec)

?

mysql> start slave;

Query OK, 0 rows affected (0.01 sec)

?

mysql> show slave status \G;

*************************** 1. row ***************************

???????????????Slave_IO_State: Waiting?for?master to send event

??????????????????Master_Host: 172.16.60.211

??????????????????Master_User: slave

??????????????????Master_Port: 3306

????????????????Connect_Retry: 60

??????????????Master_Log_File: master-bin.000002

??????????Read_Master_Log_Pos: 2069

???????????????Relay_Log_File: mysql-slave2-relay-bin.000002

????????????????Relay_Log_Pos: 2284

????????Relay_Master_Log_File: master-bin.000002

?????????????Slave_IO_Running: Yes

????????????Slave_SQL_Running: Yes

..........

..........

???????????Retrieved_Gtid_Set: fc39b161-22ca-11e9-a638-005056ac6820:1-8

????????????Executed_Gtid_Set: 26e410b4-22cb-11e9-be44-005056880888:1-2,

fc39b161-22ca-11e9-a638-005056ac6820:1-8

????????????????Auto_Position: 1

?????????Replicate_Rewrite_DB:

?????????????????Channel_Name:

???????????Master_TLS_Version:

1 row?in?set?(0.00 sec)

?

ERROR:

No query specified

?

查看從庫的gtid

mysql> show global variables like?'%gtid%';

+----------------------------------+------------------------------------------------------------------------------------+

| Variable_name??????????????????? | Value????????????????????????????????????????????????????????????????????????????? |

+----------------------------------+------------------------------------------------------------------------------------+

| binlog_gtid_simple_recovery????? | ON???????????????????????????????????????????????????????????????????????????????? |

| enforce_gtid_consistency???????? | ON???????????????????????????????????????????????????????????????????????????????? |

| gtid_executed??????????????????? | 26e410b4-22cb-11e9-be44-005056880888:1-2,

fc39b161-22ca-11e9-a638-005056ac6820:1-8 |

| gtid_executed_compression_period | 1000?????????????????????????????????????????????????????????????????????????????? |

| gtid_mode??????????????????????? | ON???????????????????????????????????????????????????????????????????????????????? |

| gtid_owned?????????????????????? |??????????????????????????????????????????????????????????????????????????????????? |

| gtid_purged????????????????????? | 26e410b4-22cb-11e9-be44-005056880888:1-2?????????????????????????????????????????? |

| session_track_gtids????????????? | OFF??????????????????????????????????????????????????????????????????????????????? |

+----------------------------------+------------------------------------------------------------------------------------+

8 rows?in?set?(0.01 sec)

?

接著查看從數(shù)據(jù)庫的數(shù)據(jù),發(fā)現(xiàn)kevin庫已經(jīng)同步過來了!

mysql> show databases;

+--------------------+

| Database?????????? |

+--------------------+

| information_schema |

| kevin????????????? |

| mysql????????????? |

| performance_schema |

| sys??????????????? |

+--------------------+

5 rows?in?set?(0.00 sec)

?

mysql>?select?* from kevin.haha;

+----+----------+

|?id?| name???? |

+----+----------+

|? 1 | congcong |

|? 2 | huihui?? |

|? 3 | grace??? |

+----+----------+

3 rows?in?set?(0.00 sec)

?

4)再回到主數(shù)據(jù)庫mysql-master (172.16.60.211)上

?

查看master狀態(tài),發(fā)現(xiàn)已經(jīng)有兩個slave節(jié)點(diǎn)正常存在同步關(guān)系了

mysql> show slave hosts;

+-----------+------+------+-----------+--------------------------------------+

| Server_id | Host | Port | Master_id | Slave_UUID?????????????????????????? |

+-----------+------+------+-----------+--------------------------------------+

|???????? 3 |????? | 3306 |???????? 1 | 26e410b4-22cb-11e9-be44-005056880888 |

|???????? 2 |????? | 3306 |???????? 1 | 2afbc2f5-22cb-11e9-b9c0-00505688047c |

+-----------+------+------+-----------+--------------------------------------+

2 rows?in?set?(0.00 sec)

?

5)測試數(shù)據(jù)同步

在主數(shù)據(jù)庫mysql-master (172.16.60.211)上更新數(shù)據(jù)

mysql> insert into kevin.haha values(10,"heifei"),(11,"huoqiu"),(12,"chengxihu");

Query OK, 3 rows affected (0.05 sec)

Records: 3? Duplicates: 0? Warnings: 0

?

然后在兩個slave從數(shù)據(jù)庫上查看,發(fā)現(xiàn)已正常同步過來了

mysql>?select?* from kevin.haha;

+----+-----------+

|?id?| name????? |

+----+-----------+

|? 1 | congcong? |

|? 2 | huihui??? |

|? 3 | grace???? |

| 10 | heifei??? |

| 11 | huoqiu??? |

| 12 | chengxihu |

+----+-----------+

6 rows?in?set?(0.00 sec)

4. 安裝配置ProxySQL
已經(jīng)在上面第一步中介紹了安裝方法,這里采用rpm包方式安裝,安裝過程省略........

4.1 ProxySQL實(shí)現(xiàn)讀寫分離

向ProxySQL中添加MySQL節(jié)點(diǎn)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

使用insert語句添加主機(jī)到mysql_servers表中,其中:hostgroup_id 為10表示寫組,為20表示讀組。

??

[root@mysql-proxy ~]# mysql -uadmin -padmin -P6032 -h127.0.0.1

............

MySQL [(none)]> insert into mysql_servers(hostgroup_id,hostname,port) values(10,'172.16.60.211',3306);

Query OK, 1 row affected (0.000 sec)

??

MySQL [(none)]> insert into mysql_servers(hostgroup_id,hostname,port) values(10,'172.16.60.212',3306);

Query OK, 1 row affected (0.000 sec)

??

MySQL [(none)]> insert into mysql_servers(hostgroup_id,hostname,port) values(10,'172.16.60.213',3306);

Query OK, 1 row affected (0.000 sec)

?

==========================================================================================================

如果在插入過程中,出現(xiàn)報錯:

ERROR 1045 (#2800): UNIQUE constraint failed: mysql_servers.hostgroup_id, mysql_servers.hostname, mysql_servers.port

?

說明可能之前就已經(jīng)定義了其他配置,可以清空這張表 或者 刪除對應(yīng)host的配置

MySQL [(none)]>?select?* from mysql_servers;

MySQL [(none)]> delete from mysql_servers;

Query OK, 6 rows affected (0.000 sec)

=========================================================================================================

??

查看這3個節(jié)點(diǎn)是否插入成功,以及它們的狀態(tài)。

MySQL [(none)]>?select?* from mysql_servers\G;

*************************** 1. row ***************************

???????hostgroup_id: 10

???????????hostname: 172.16.60.211

???????????????port: 3306

?????????????status: ONLINE

?????????????weight: 1

????????compression: 0

????max_connections: 1000

max_replication_lag: 0

????????????use_ssl: 0

?????max_latency_ms: 0

????????????comment:

*************************** 2. row ***************************

???????hostgroup_id: 10

???????????hostname: 172.16.60.212

???????????????port: 3306

?????????????status: ONLINE

?????????????weight: 1

????????compression: 0

????max_connections: 1000

max_replication_lag: 0

????????????use_ssl: 0

?????max_latency_ms: 0

????????????comment:

*************************** 3. row ***************************

???????hostgroup_id: 10

???????????hostname: 172.16.60.213

???????????????port: 3306

?????????????status: ONLINE

?????????????weight: 1

????????compression: 0

????max_connections: 1000

max_replication_lag: 0

????????????use_ssl: 0

?????max_latency_ms: 0

????????????comment:

6 rows?in?set?(0.000 sec)

??

ERROR: No query specified

??

如上修改后,加載到RUNTIME,并保存到disk

MySQL [(none)]> load mysql servers to runtime;

Query OK, 0 rows affected (0.006 sec)

??

MySQL [(none)]> save mysql servers to disk;

Query OK, 0 rows affected (0.348 sec)

監(jiān)控后端MySQL節(jié)點(diǎn)
添加Mysql節(jié)點(diǎn)之后,還需要監(jiān)控這些后端節(jié)點(diǎn)。對于后端是主從復(fù)制的環(huán)境來說,這是必須的,因?yàn)镻roxySQL需要通過每個節(jié)點(diǎn)的read_only值來自動調(diào)整
它們是屬于讀組還是寫組。

首先在后端master主數(shù)據(jù)節(jié)點(diǎn)上創(chuàng)建一個用于監(jiān)控的用戶名(只需在master上創(chuàng)建即可,因?yàn)闀?fù)制到slave上),這個用戶名只需具有USAGE權(quán)限即可。如果還需
要監(jiān)控復(fù)制結(jié)構(gòu)中slave是否嚴(yán)重延遲于master(這個俗語叫做"拖后腿",術(shù)語叫做"replication lag"),則還需具備replication client權(quán)限。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

在mysql-master主數(shù)據(jù)庫節(jié)點(diǎn)行執(zhí)行:

[root@mysql-master ~]# mysql -p123456

..........

?

mysql> create user monitor@'172.16.60.%'?identified by?'P@ssword1!';

Query OK, 0 rows affected (0.03 sec)

?

mysql> grant replication client on *.* to monitor@'172.16.60.%';

Query OK, 0 rows affected (0.02 sec)

?

mysql> flush privileges;

Query OK, 0 rows affected (0.02 sec)

?

然后回到mysql-proxy代理層節(jié)點(diǎn)上配置監(jiān)控

[root@mysql-proxy ~]# mysql -uadmin -padmin -P6032 -h127.0.0.1

..........

MySQL [(none)]>?set?mysql-monitor_username='monitor';

Query OK, 1 row affected (0.000 sec)

?

MySQL [(none)]>?set?mysql-monitor_password='P@ssword1!';

Query OK, 1 row affected (0.000 sec)

?

修改后,加載到RUNTIME,并保存到disk

MySQL [(none)]> load mysql variables to runtime;

Query OK, 0 rows affected (0.001 sec)

?

MySQL [(none)]> save mysql variables to disk;

Query OK, 94 rows affected (0.079 sec)

?

驗(yàn)證監(jiān)控結(jié)果:ProxySQL監(jiān)控模塊的指標(biāo)都保存在monitor庫的log表中。

??

以下是連接是否正常的監(jiān)控(對connect指標(biāo)的監(jiān)控):

注意:可能會有很多connect_error,這是因?yàn)闆]有配置監(jiān)控信息時的錯誤,配置后如果connect_error的結(jié)果為NULL則表示正常。

MySQL [(none)]>?select?* from mysql_server_connect_log;

+---------------+------+------------------+-------------------------+---------------+

|?hostname??????| port | time_start_us??? | connect_success_time_us | connect_error |

+---------------+------+------------------+-------------------------+---------------+

| 172.16.60.211 | 3306 | 1548665195883957 | 762???????????????????? | NULL????????? |

| 172.16.60.212 | 3306 | 1548665195894099 | 399???????????????????? | NULL????????? |

| 172.16.60.213 | 3306 | 1548665195904266 | 483???????????????????? | NULL????????? |

| 172.16.60.211 | 3306 | 1548665255883715 | 824???????????????????? | NULL????????? |

| 172.16.60.212 | 3306 | 1548665255893942 | 656???????????????????? | NULL????????? |

| 172.16.60.211 | 3306 | 1548665495884125 | 615???????????????????? | NULL????????? |

| 172.16.60.212 | 3306 | 1548665495894254 | 441???????????????????? | NULL????????? |

| 172.16.60.213 | 3306 | 1548665495904479 | 638???????????????????? | NULL????????? |

| 172.16.60.211 | 3306 | 1548665512917846 | 487???????????????????? | NULL????????? |

| 172.16.60.212 | 3306 | 1548665512928071 | 994???????????????????? | NULL????????? |

| 172.16.60.213 | 3306 | 1548665512938268 | 613???????????????????? | NULL????????? |

+---------------+------+------------------+-------------------------+---------------+

20 rows?in?set?(0.000 sec)

?

以下是對心跳信息的監(jiān)控(對ping指標(biāo)的監(jiān)控)

MySQL [(none)]>?select?* from mysql_server_ping_log;

+---------------+------+------------------+----------------------+------------+

|?hostname??????| port | time_start_us??? | ping_success_time_us | ping_error |

+---------------+------+------------------+----------------------+------------+

| 172.16.60.211 | 3306 | 1548665195883407 | 98?????????????????? | NULL?????? |

| 172.16.60.212 | 3306 | 1548665195885128 | 119????????????????? | NULL?????? |

...........

| 172.16.60.213 | 3306 | 1548665415889362 | 106????????????????? | NULL?????? |

| 172.16.60.213 | 3306 | 1548665562898295 | 97?????????????????? | NULL?????? |

+---------------+------+------------------+----------------------+------------+

110 rows?in?set?(0.001 sec)

?

read_only日志此時也為空(正常來說,新環(huán)境配置時,這個只讀日志是為空的)

MySQL [(none)]>?select?* from mysql_server_read_only_log;

Empty?set?(0.000 sec)

?

replication_lag的監(jiān)控日志為空

MySQL [(none)]>?select?* from mysql_server_replication_lag_log;

Empty?set?(0.000 sec)

?

指定寫組的id為10,讀組的id為20。

MySQL [(none)]> insert into mysql_replication_hostgroups values(10,20,1);

Query OK, 1 row affected (0.000 sec)

?

在該配置加載到RUNTIME生效之前,先查看下各mysql server所在的組。

MySQL [(none)]>?select?hostgroup_id,hostname,port,status,weight from mysql_servers;

+--------------+---------------+------+--------+--------+

| hostgroup_id |?hostname??????| port | status | weight |

+--------------+---------------+------+--------+--------+

| 10?????????? | 172.16.60.211 | 3306 | ONLINE | 1????? |

| 10?????????? | 172.16.60.212 | 3306 | ONLINE | 1????? |

| 10?????????? | 172.16.60.213 | 3306 | ONLINE | 1????? |

+--------------+---------------+------+--------+--------+

3 rows?in?set?(0.000 sec)

?

3個節(jié)點(diǎn)都在hostgroup_id=10的組中。

現(xiàn)在,將剛才mysql_replication_hostgroups表的修改加載到RUNTIME生效。

MySQL [(none)]> load mysql servers to runtime;

Query OK, 0 rows affected (0.003 sec)

?

MySQL [(none)]> save mysql servers to disk;

Query OK, 0 rows affected (0.361 sec)

?

一加載,Monitor模塊就會開始監(jiān)控后端的read_only值,當(dāng)監(jiān)控到read_only值后,就會按照read_only的值將某些節(jié)點(diǎn)自動移動到讀/寫組。

例如,此處所有節(jié)點(diǎn)都在id=10的寫組,slave1和slave2都是slave,它們的read_only=1,這兩個節(jié)點(diǎn)將會移動到id=20的組。

如果一開始這3節(jié)點(diǎn)都在id=20的讀組,那么移動的將是Master節(jié)點(diǎn),會移動到id=10的寫組。

??

現(xiàn)在看結(jié)果

MySQL [(none)]>?select?hostgroup_id,hostname,port,status,weight from mysql_servers;

+--------------+---------------+------+--------+--------+

| hostgroup_id |?hostname??????| port | status | weight |

+--------------+---------------+------+--------+--------+

| 10?????????? | 172.16.60.211 | 3306 | ONLINE | 1????? |

| 20?????????? | 172.16.60.212 | 3306 | ONLINE | 1????? |

| 20?????????? | 172.16.60.213 | 3306 | ONLINE | 1????? |

+--------------+---------------+------+--------+--------+

3 rows?in?set?(0.000 sec)

?

MySQL [(none)]>?select?* from mysql_server_read_only_log;

+---------------+------+------------------+-----------------+-----------+-------+

|?hostname??????| port | time_start_us??? | success_time_us | read_only | error |

+---------------+------+------------------+-----------------+-----------+-------+

| 172.16.60.212 | 3306 | 1548665728919212 | 1684??????????? | 1???????? | NULL? |

| 172.16.60.211 | 3306 | 1548665728918753 | 3538??????????? | 0???????? | NULL? |

| 172.16.60.213 | 3306 | 1548665728919782 | 3071??????????? | 1???????? | NULL? |

配置mysql_users
上面的所有配置都是關(guān)于后端MySQL節(jié)點(diǎn)的,現(xiàn)在可以配置關(guān)于SQL語句的,包括:發(fā)送SQL語句的用戶、SQL語句的路由規(guī)則、SQL查詢的緩存、SQL語句的重寫等等。本小節(jié)是SQL請求所使用的用戶配置,例如root用戶。這要求我們需要先在后端MySQL節(jié)點(diǎn)添加好相關(guān)用戶。這里以root和sqlsender兩個用戶名為例.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

首先,在mysql-master主數(shù)據(jù)庫節(jié)點(diǎn)上執(zhí)行:(只需master執(zhí)行即可,會復(fù)制給兩個slave)

[root@mysql-master ~]# mysql -p123456

.........

mysql> grant all on *.* to root@'172.16.60.%'?identified by?'passwd';

Query OK, 0 rows affected, 1 warning (0.04 sec)

?

mysql> grant all on *.* to sqlsender@'172.16.60.%'?identified by?'P@ssword1!';

Query OK, 0 rows affected, 1 warning (0.03 sec)

?

mysql> flush privileges;

Query OK, 0 rows affected (0.03 sec)

?

然后回到mysql-proxy代理層節(jié)點(diǎn),配置mysql_users表,將剛才的兩個用戶添加到該表中。

admin> insert into mysql_users(username,password,default_hostgroup) values('root','passwd',10);

Query OK, 1 row affected (0.001 sec)

??

admin> insert into mysql_users(username,password,default_hostgroup) values('sqlsender','P@ssword1!',10);

Query OK, 1 row affected (0.000 sec)

??

admin> load mysql?users?to runtime;

Query OK, 0 rows affected (0.001 sec)

??

admin> save mysql?users?to disk;

Query OK, 0 rows affected (0.108 sec)

??

mysql_users表有不少字段,最主要的三個字段為username、password和default_hostgroup:

-? username:前端連接ProxySQL,以及ProxySQL將SQL語句路由給MySQL所使用的用戶名。

-? password:用戶名對應(yīng)的密碼。可以是明文密碼,也可以是hash密碼。如果想使用hash密碼,可以先在某個MySQL節(jié)點(diǎn)上執(zhí)行

???select?password(PASSWORD),然后將加密結(jié)果復(fù)制到該字段。

-? default_hostgroup:該用戶名默認(rèn)的路由目標(biāo)。例如,指定root用戶的該字段值為10時,則使用root用戶發(fā)送的SQL語句默認(rèn)

???情況下將路由到hostgroup_id=10組中的某個節(jié)點(diǎn)。

?

admin>?select?* from mysql_users\G

*************************** 1. row ***************************

??????????????username: root

??????????????password:?passwd

????????????????active: 1

???????????????use_ssl: 0

?????default_hostgroup: 10

????????default_schema: NULL

?????????schema_locked: 0

transaction_persistent: 1

??????????fast_forward: 0

???????????????backend: 1

??????????????frontend: 1

???????max_connections: 10000

*************************** 2. row ***************************

??????????????username: sqlsender

??????????????password: P@ssword1!

????????????????active: 1

???????????????use_ssl: 0

?????default_hostgroup: 10

????????default_schema: NULL

?????????schema_locked: 0

transaction_persistent: 1

??????????fast_forward: 0

???????????????backend: 1

??????????????frontend: 1

???????max_connections: 10000

2 rows?in?set?(0.000 sec)

??

雖然這里沒有詳細(xì)介紹mysql_users表,但上面標(biāo)注了"注意本行"的兩個字段必須要引起注意。只有active=1的用戶才是有效的用戶。

至于transaction_persistent字段,當(dāng)它的值為1時,表示事務(wù)持久化:當(dāng)某連接使用該用戶開啟了一個事務(wù)后,那么在事務(wù)提交/回滾之前,

所有的語句都路由到同一個組中,避免語句分散到不同組。在以前的版本中,默認(rèn)值為0,不知道從哪個版本開始,它的默認(rèn)值為1。

我們期望的值為1,所以在繼續(xù)下面的步驟之前,先查看下這個值,如果為0,則執(zhí)行下面的語句修改為1。

?

MySQL [(none)]> update mysql_users?set?transaction_persistent=1 where username='root';

Query OK, 1 row affected (0.000 sec)

?

MySQL [(none)]> update mysql_users?set?transaction_persistent=1 where username='sqlsender';

Query OK, 1 row affected (0.000 sec)

?

MySQL [(none)]> load mysql?users?to runtime;

Query OK, 0 rows affected (0.001 sec)

?

MySQL [(none)]> save mysql?users?to disk;

Query OK, 0 rows affected (0.123 sec)

?

然后,分別使用root用戶和sqlsender用戶測試下它們是否能路由到默認(rèn)的hostgroup_id=10(它是一個寫組)讀、寫數(shù)據(jù)。

下面是通過轉(zhuǎn)發(fā)端口6033連接的,連接的是轉(zhuǎn)發(fā)到后端真正的數(shù)據(jù)庫!

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e "select @@server_id"

+-------------+

| @@server_id |

+-------------+

|?????????? 1 |

+-------------+

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e "create database proxy_test"

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e "show databases;"

+--------------------+

| Database?????????? |

+--------------------+

| information_schema |

| kevin????????????? |

| mysql????????????? |

| performance_schema |

| proxy_test???????? |

| sys??????????????? |

+--------------------+

[root@mysql-proxy ~]# mysql -usqlsender -pP@ssword1! -P6033 -h127.0.0.1 -e 'use proxy_test;create table t(id int);'

[root@mysql-proxy ~]# mysql -usqlsender -pP@ssword1! -P6033 -h127.0.0.1 -e 'show tables from proxy_test;'

+----------------------+

| Tables_in_proxy_test |

+----------------------+

| t??????????????????? |

+----------------------+

[root@mysql-proxy ~]# mysql -usqlsender -pP@ssword1! -P6033 -h127.0.0.1 -e 'show databases;'???????????

+--------------------+

| Database?????????? |

+--------------------+

| information_schema |

| kevin????????????? |

| mysql????????????? |

| performance_schema |

| proxy_test???????? |

| sys??????????????? |

+--------------------+

?

然后再刪除上面這個測試庫

[root@mysql-proxy ~]# mysql -usqlsender -pP@ssword1! -P6033 -h127.0.0.1 -e 'drop database proxy_test;'

[root@mysql-proxy ~]# mysql -usqlsender -pP@ssword1! -P6033 -h127.0.0.1 -e 'show databases;'?????????

+--------------------+

| Database?????????? |

+--------------------+

| information_schema |

| kevin????????????? |

| mysql????????????? |

| performance_schema |

| sys??????????????? |

+--------------------+

讀寫分離:配置路由規(guī)則
ProxySQL的路由規(guī)則非常靈活,可以基于用戶、基于schema以及基于每個語句實(shí)現(xiàn)路由規(guī)則的定制。本案例作為一個入門配置,實(shí)現(xiàn)一個最簡單的語句級路由規(guī)則,從而實(shí)現(xiàn)讀寫分離。

必須注意:?這只是實(shí)驗(yàn),實(shí)際的路由規(guī)則絕不應(yīng)該僅根據(jù)所謂的讀、寫操作進(jìn)行分離,而是從各項指標(biāo)中找出壓力大、執(zhí)行頻繁的語句單獨(dú)寫規(guī)則、做緩存等等。和查詢規(guī)則有關(guān)的表有兩個:mysql_query_rules和mysql_query_rules_fast_routing,后者是前者的擴(kuò)展表,1.4.7之后才支持該快速路由表。本案例只介紹第一個表。插入兩個規(guī)則,目的是將select語句分離到hostgroup_id=20的讀組,但由于select語句中有一個特殊語句SELECT...FOR UPDATE它會申請寫鎖,所以應(yīng)該路由到hostgroup_id=10的寫組.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

[root@mysql-proxy ~]# mysql -uadmin -padmin -P6032 -h127.0.0.1???????????????????????

............

MySQL [(none)]> insert into mysql_query_rules(rule_id,active,match_digest,destination_hostgroup,apply) VALUES (1,1,'^SELECT.*FOR UPDATE$',10,1), (2,1,'^SELECT',20,1);

Query OK, 2 rows affected (0.000 sec)

?

MySQL [(none)]> load mysql query rules to runtime;

Query OK, 0 rows affected (0.000 sec)

?

MySQL [(none)]> save mysql query rules to disk;

Query OK, 0 rows affected (0.272 sec)

?

需要注意:?select?...?for?update規(guī)則的rule_id必須要小于普通的select規(guī)則的rule_id,因?yàn)镻roxySQL是根據(jù)rule_id的順序進(jìn)行規(guī)則匹配的。

????

再來測試下,讀操作是否路由給了hostgroup_id=20的讀組, 如下發(fā)現(xiàn)server_id為2和3的節(jié)點(diǎn) (即slave從節(jié)點(diǎn))在讀組內(nèi)

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e 'select @@server_id'

+-------------+

| @@server_id |

+-------------+

|?????????? 3 |

+-------------+

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e 'select @@server_id'

+-------------+

| @@server_id |

+-------------+

|?????????? 3 |

+-------------+

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e 'select @@server_id'

+-------------+

| @@server_id |

+-------------+

|?????????? 2 |

+-------------+

?

讀操作已經(jīng)路由給讀組,再看看寫操作。這里以事務(wù)持久化進(jìn)行測試。

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e 'start transaction;select @@server_id;commit;select @@server_id;'

+-------------+

| @@server_id |

+-------------+

|?????????? 1 |

+-------------+

+-------------+

| @@server_id |

+-------------+

|?????????? 3 |

+-------------+

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e 'start transaction;select @@server_id;commit;select @@server_id;'

+-------------+

| @@server_id |

+-------------+

|?????????? 1 |

+-------------+

+-------------+

| @@server_id |

+-------------+

|?????????? 2 |

?

顯然,一切都按照預(yù)期進(jìn)行。最后,如果想查看路由的信息,可查詢stats庫中的stats_mysql_query_digest表。

以下是該表的一個輸出格式示例(和本案例無關(guān))。

[root@mysql-proxy ~]# mysql -uadmin -padmin -P6032 -h127.0.0.1???????????????????????

............

MySQL [(none)]> SELECT hostgroup hg, sum_time, count_star, digest_text FROM stats_mysql_query_digest ORDER BY sum_time DESC;

+----+----------+------------+----------------------------------+

| hg | sum_time | count_star | digest_text????????????????????? |

+----+----------+------------+----------------------------------+

| 10 | 283841?? | 1????????? | drop database proxy_test???????? |

| 10 | 161020?? | 1????????? | create table t(id?int)?????????? |

| 10 | 36002??? | 1????????? | create database proxy_test?????? |

| 20 | 2719???? | 5????????? |?select?@@server_id?????????????? |

| 10 | 1250???? | 3????????? |?select?@@server_id?????????????? |

| 10 | 1102???? | 2????????? | show databases?????????????????? |

| 10 | 789????? | 2????????? | start transaction??????????????? |

| 10 | 655????? | 1????????? | SELECT DATABASE()??????????????? |

| 10 | 629????? | 1????????? | show databases?????????????????? |

| 10 | 564????? | 1????????? | show tables from proxy_test????? |

| 10 | 286????? | 2????????? | commit?????????????????????????? |

| 10 | 0??????? | 8????????? |?select?@@version_comment limit ? |

| 10 | 0??????? | 5????????? |?select?@@version_comment limit ? |

+----+----------+------------+----------------------------------+

13 rows?in?set?(0.002 sec)

測試讀寫分離效果

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

由于讀寫操作都記錄在proxysql的stats_mysql_query_digest表內(nèi)。

為了測試讀寫分離的效果,可以先清空此表中之前的記錄 (即之前在實(shí)現(xiàn)讀寫分配路由配置之前的記錄)

?

下面這個命令是專門清空stats_mysql_query_digest表的? (使用"delete from stats_mysql_query_digest"??清空不掉!)

MySQL [(none)]> SELECT 1 FROM stats_mysql_query_digest_reset LIMIT 1;

+---+

| 1 |

+---+

| 1 |

+---+

1 row?in?set?(0.002 sec)

?

MySQL [(none)]>?select?hostgroup,username,digest_text,count_star from stats_mysql_query_digest;?????????????

Empty?set?(0.001 sec)

?

在mysql-proxy代理層節(jié)點(diǎn),通過proxysql進(jìn)行數(shù)據(jù)寫入,并查看

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e 'select * from kevin.haha;'

+----+-----------+

|?id?| name????? |

+----+-----------+

|? 1 | congcong? |

|? 2 | huihui??? |

|? 3 | grace???? |

| 11 | huoqiu??? |

| 12 | chengxihu |

| 21 | zhongguo? |

+----+-----------+

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e 'delete from kevin.haha where id > 3;'

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e 'insert into kevin.haha values(21,"zhongguo"),(22,"xianggang"),(23,"taiwan");'

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e 'update kevin.haha set name="hangzhou" where id=22 ;'????????????????

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e 'select * from kevin.haha;'??????????????????????????????????????????

+----+----------+

|?id?| name???? |

+----+----------+

|? 1 | congcong |

|? 2 | huihui?? |

|? 3 | grace??? |

| 21 | zhongguo |

| 22 | hangzhou |

| 23 | taiwan?? |

+----+----------+

?

在mysql-master主數(shù)據(jù)庫和mysql-slave1、mysql-slave2從數(shù)據(jù)上查看

[root@mysql-master ~]# mysql -p123456

.........

mysql>?select?* from kevin.haha;

+----+----------+

|?id?| name???? |

+----+----------+

|? 1 | congcong |

|? 2 | huihui?? |

|? 3 | grace??? |

| 21 | zhongguo |

| 22 | hangzhou |

| 23 | taiwan?? |

+----+----------+

6 rows?in?set?(0.00 sec)

?

發(fā)現(xiàn)在客戶端通過proxysql插件更新的數(shù)據(jù),已經(jīng)寫到mysql-master主數(shù)據(jù)庫上,并同步到mysql-slave1和mysql-slave2兩個從數(shù)據(jù)庫上了!

?

最后在proxysql管理端查看讀寫分離

[root@mysql-proxy ~]# mysql -uadmin -padmin -h127.0.0.1 -P6032???????????

............

............

MySQL [(none)]>?select?hostgroup,username,digest_text,count_star from stats_mysql_query_digest;

+-----------+----------+------------------------------------------------+------------+

| hostgroup | username | digest_text??????????????????????????????????? | count_star |

+-----------+----------+------------------------------------------------+------------+

| 10??????? | root???? | insert into kevin.haha values(?,?),(?,?),(?,?) | 1????????? |

| 10??????? | root???? | delete from kevin.haha where?id?> ???????????? | 1????????? |

| 10??????? | root???? | update kevin.haha?set?name=? where?id=???????? | 1????????? |

| 20??????? | root???? |?select?* from kevin.haha?????????????????????? | 2????????? |

| 10??????? | root???? |?select?@@version_comment limit ??????????????? | 5????????? |

+-----------+----------+------------------------------------------------+------------+

5 rows?in?set?(0.001 sec)

?

從上述結(jié)果就可以看出proxysql實(shí)現(xiàn)的讀寫分離配置是成功的,讀請求是轉(zhuǎn)發(fā)到group20的讀組內(nèi),寫請求轉(zhuǎn)發(fā)到group10的寫組內(nèi)!!

4.2 負(fù)載均衡測試? (加權(quán)輪詢)
如上已經(jīng)配置好一主(mysql-master,在hostgroup10寫組內(nèi))、兩從(mysql-slave1和mysql-slave2,在hostgroup20讀組內(nèi)) ,并且已經(jīng)在"mysql_query_rules"表中配置了路由規(guī)則,即寫操作轉(zhuǎn)發(fā)到hostgroup10組,讀操作轉(zhuǎn)發(fā)到hostgroup20組.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

MySQL [(none)]>?select?* from mysql_query_rules;???????????

+---------+--------+----------+------------+--------+-------------+------------+------------+--------+----------------------+---------------+----------------------+--------------+---------+-----------------+-----------------------+-----------+-----------+---------+---------+-------+-------------------+----------------+------------------+-----------+--------+-------------+-----------+-----+-------+---------+

| rule_id | active | username | schemaname | flagIN | client_addr | proxy_addr | proxy_port | digest | match_digest???????? | match_pattern | negate_match_pattern | re_modifiers | flagOUT | replace_pattern | destination_hostgroup | cache_ttl | reconnect | timeout | retries | delay | next_query_flagIN | mirror_flagOUT | mirror_hostgroup | error_msg | OK_msg | sticky_conn | multiplex | log | apply | comment |

+---------+--------+----------+------------+--------+-------------+------------+------------+--------+----------------------+---------------+----------------------+--------------+---------+-----------------+-----------------------+-----------+-----------+---------+---------+-------+-------------------+----------------+------------------+-----------+--------+-------------+-----------+-----+-------+---------+

| 1?????? | 1????? | NULL???? | NULL?????? | 0????? | NULL??????? | NULL?????? | NULL?????? | NULL?? | ^SELECT.*FOR UPDATE$ | NULL????????? | 0??????????????????? | CASELESS???? | NULL??? | NULL??????????? | 10??????????????????? | NULL????? | NULL????? | NULL??? | NULL??? | NULL? | NULL????????????? | NULL?????????? | NULL???????????? | NULL????? | NULL?? | NULL??????? | NULL????? | NULL | 1???? | NULL??? |

| 2?????? | 1????? | NULL???? | NULL?????? | 0????? | NULL??????? | NULL?????? | NULL?????? | NULL?? | ^SELECT????????????? | NULL????????? | 0??????????????????? | CASELESS???? | NULL??? | NULL??????????? | 20??????????????????? | NULL????? | NULL????? | NULL??? | NULL??? | NULL? | NULL????????????? | NULL?????????? | NULL???????????? | NULL????? | NULL?? | NULL??????? | NULL????? | NULL | 1???? | NULL??? |

+---------+--------+----------+------------+--------+-------------+------------+------------+--------+----------------------+---------------+----------------------+--------------+---------+-----------------+-----------------------+-----------+-----------+---------+---------+-------+-------------------+----------------+------------------+-----------+--------+-------------+-----------+-----+-------+---------+

2 rows?in?set?(0.000 sec)

??

由于hostgroup10寫組內(nèi)只要一個節(jié)點(diǎn)(mysql-master節(jié)點(diǎn)),hostgroup20讀組內(nèi)有兩個節(jié)點(diǎn)(mysql-slave1、mysql-slave2)

所以這里只能測試讀節(jié)點(diǎn)的負(fù)載均衡

??

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e "select @@hostname"

+--------------+

| @@hostname???|

+--------------+

| mysql-slave1 |

+--------------+

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e "select @@hostname"

+--------------+

| @@hostname???|

+--------------+

| mysql-slave1 |

+--------------+

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e "select @@hostname"

+--------------+

| @@hostname???|

+--------------+

| mysql-slave1 |

+--------------+

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e "select @@hostname"

+--------------+

| @@hostname???|

+--------------+

| mysql-slave2 |

+--------------+

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e "select @@hostname"

+--------------+

| @@hostname???|

+--------------+

| mysql-slave2 |

+--------------+

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e "select @@hostname"

+--------------+

| @@hostname???|

+--------------+

| mysql-slave2 |

+--------------+

??

再實(shí)驗(yàn)下mysql -e跟多條語句,看看如何

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e "select @@hostname;select @@hostname;select @@hostname"

+--------------+

| @@hostname???|

+--------------+

| mysql-slave1 |

+--------------+

+--------------+

| @@hostname???|

+--------------+

| mysql-slave1 |

+--------------+

+--------------+

| @@hostname???|

+--------------+

| mysql-slave1 |

+--------------+

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e "select @@hostname;select @@hostname;select @@hostname"

+--------------+

| @@hostname???|

+--------------+

| mysql-slave2 |

+--------------+

+--------------+

| @@hostname???|

+--------------+

| mysql-slave2 |

+--------------+

+--------------+

| @@hostname???|

+--------------+

| mysql-slave2 |

+--------------+

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e "select @@hostname;select @@hostname;select @@hostname"

+--------------+

| @@hostname???|

+--------------+

| mysql-slave1 |

+--------------+

+--------------+

| @@hostname???|

+--------------+

| mysql-slave1 |

+--------------+

+--------------+

| @@hostname???|

+--------------+

| mysql-slave1 |

+--------------+

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e "select @@hostname;select @@hostname;select @@hostname"

+--------------+

| @@hostname???|

+--------------+

| mysql-slave1 |

+--------------+

+--------------+

| @@hostname???|

+--------------+

| mysql-slave1 |

+--------------+

+--------------+

| @@hostname???|

+--------------+

| mysql-slave1 |

+--------------+

[root@mysql-proxy ~]# mysql -uroot -ppasswd -P6033 -h127.0.0.1 -e "select @@hostname;select @@hostname;select @@hostname"

+--------------+

| @@hostname???|

+--------------+

| mysql-slave2 |

+--------------+

+--------------+

| @@hostname???|

+--------------+

| mysql-slave2 |

+--------------+

+--------------+

| @@hostname???|

+--------------+

| mysql-slave2 |

+--------------+

??

由以上結(jié)果可能會猜想并可印證:

在一個client的一個鏈接周期內(nèi),所有query路由到同一臺后端!

即在同一個client的鏈接周期內(nèi),query路由不會轉(zhuǎn)發(fā)到同組內(nèi)的不同后端節(jié)點(diǎn)機(jī)上,只能轉(zhuǎn)發(fā)到同一臺后端節(jié)點(diǎn)機(jī)上!

??

但是這只是個假象!!!?? 是因?yàn)檎糜玫搅藄elect?@ 語句。

如官網(wǎng)所介紹:? sends a query that implicitly disables multiplexing. For example,?if?you run “SELECT @a” , ProxySQL will disable

multiplexing?for?that client and will always use the same backend connection

??

最后可以知道: proxysql的負(fù)載方式目前僅為加權(quán)輪詢一種(經(jīng)驗(yàn)證所確認(rèn)),并無其他機(jī)制!

?

===============================================================================

可以編寫一個負(fù)載均衡的shell測試腳本:

[root@mysql-proxy ~]# which mysql

/usr/bin/mysql

[root@mysql-proxy ~]# vim /opt/test_proxysql_lb.sh

#!/bin/bash

?

i=0

while(($i<200))

do

????????/usr/bin/mysql?-uroot -ppasswd -P6033 -h127.0.0.1 -e?"select @@hostname;"?>>?/tmp/test_proxy_sql_lb.txt

????????let?"i++"

????????echo?"$i"

????????sleep?0.1

done

?

執(zhí)行測試腳本:

[root@mysql-proxy ~]# sh -x /opt/test_proxysql_lb.sh > /dev/null 2>&1

?

執(zhí)行后檢查結(jié)果

[root@mysql-proxy ~]# grep "mysql-slave1" /tmp/test_proxy_sql_lb.txt|wc -l

86

[root@mysql-proxy ~]# grep "mysql-slave2" /tmp/test_proxy_sql_lb.txt|wc -l

114

?

以上查詢結(jié)果符合預(yù)期

4.3 開啟ProxySQL的Web統(tǒng)計功能

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

首先打開web功能

[root@mysql-proxy ~]#? mysql -uadmin -padmin -h127.0.0.1 -P6032?

............

............

MySQL [(none)]> update global_variables?set?variable_value='true'?where variable_name='admin-web_enabled';

Query OK, 1 row affected (0.001 sec)

?

MySQL [(none)]> LOAD ADMIN VARIABLES TO RUNTIME;

Query OK, 0 rows affected (0.001 sec)

?

MySQL [(none)]> SAVE ADMIN VARIABLES TO DISK;

Query OK, 31 rows affected (0.070 sec)

?

然后查看端口和登錄web界面的用戶名和密碼,用戶名和密碼與stat賬戶一致:

MySQL [(none)]>?select?* from global_variables where variable_name LIKE?'admin-web%'?or variable_name LIKE?'admin-stats%';

+-----------------------------------+----------------+

| variable_name???????????????????? | variable_value |

+-----------------------------------+----------------+

| admin-stats_credentials?????????? | stats:stats??? |????????????????#賬戶密碼

| admin-stats_mysql_connections???? | 60???????????? |

| admin-stats_mysql_connection_pool | 60???????????? |

| admin-stats_mysql_query_cache???? | 60???????????? |

| admin-stats_system_cpu??????????? | 60???????????? |

| admin-stats_system_memory???????? | 60???????????? |

| admin-web_enabled???????????????? |?true???????????|

| admin-web_port??????????????????? | 6080?????????? |?????????????????????#端口

+-----------------------------------+----------------+

8 rows?in?set?(0.003 sec)

查看web端口是否正常打開

1

2

3

[root@mysql-proxy ~]# lsof -i:6080

COMMAND??? PID USER?? FD?? TYPE?? DEVICE SIZE/OFF?NODE NAME

proxysql 22324 root?? 27u? IPv4 23010645????? 0t0? TCP *:6080 (LISTEN)

訪問http://172.16.60.214:6080并使用stats:stats登錄即可查看一些統(tǒng)計信息。

4.4? scheduler打印proxysql狀態(tài)到日志

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

[root@mysql-proxy ~]# mkdir -p /opt/proxysql/log

[root@mysql-proxy ~]# vim /opt/proxysql/log/status.sh

#!/bin/bash

DATE=`date?"+%Y-%m-%d %H:%M:%S"`

echo?"{\"dateTime\":\"$DATE\",\"status\":\"running\"}"?>>?/opt/proxysql/log/status_log

?

[root@mysql-proxy ~]# chmod 777 /opt/proxysql/log/status.sh

?

然后在proxysql插入一條scheduler (定義每分鐘打印一次,即60000毫秒)

[root@mysql-proxy ~]# mysql -uadmin -padmin -h127.0.0.1 -P6032

............

............

MySQL [(none)]> insert into scheduler(active,interval_ms,filename) values (1,60000,'/opt/proxysql/log/status.sh');

Query OK, 1 row affected (0.000 sec)

?

MySQL [(none)]> LOAD SCHEDULER TO RUNTIME;

Query OK, 0 rows affected (0.001 sec)

?

MySQL [(none)]> SAVE SCHEDULER TO DISK;

Query OK, 0 rows affected (0.105 sec)

?

然后查看日志就可以看到proxysql 的運(yùn)行結(jié)果了:

[root@mysql-proxy ~]# tail -f /opt/proxysql/log/status_log

{"dateTime":"2019-02-19 14:24:03","status":"running"}

{"dateTime":"2019-02-19 14:25:03","status":"running"}

{"dateTime":"2019-02-19 14:26:03","status":"running"}

{"dateTime":"2019-02-19 14:27:03","status":"running"}

?

***************當(dāng)你發(fā)現(xiàn)自己的才華撐不起野心時,就請安靜下來學(xué)習(xí)吧***************

總結(jié)

以上是生活随笔為你收集整理的ProxySQL 配置详解及读写分离(+GTID)等功能说明 (完整篇)2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

亚洲美女视频网 | 六月丁香色婷婷 | 亚洲国产片色 | 久久亚洲综合国产精品99麻豆的功能介绍 | 日韩久久一区二区 | 日韩极品视频在线观看 | 在线看不卡av | 久久综合久久鬼 | 人人爱人人爽 | 在线观看色网 | 国产精品一区电影 | 国产精品福利在线 | 成人黄大片| 大片网站久久 | 日韩一区二区三区免费视频 | 午夜男人影院 | av黄色在线播放 | 久久第四色 | 奇米网444 | 黄污在线观看 | 国产精品v欧美精品v日韩 | 久久五月婷婷丁香社区 | 天天干天天拍天天操天天拍 | 国产成人一区二区三区电影 | 国产不卡精品视频 | 网站免费黄色 | 深夜免费小视频 | 精品99999| 亚洲天天摸日日摸天天欢 | 亚洲精品国产麻豆 | 美女搞黄国产视频网站 | 激情综合一区 | 国产视频2021| 日本一区二区免费在线观看 | 成人av午夜 | 手机av资源 | 亚洲精品在线免费 | 国产精品毛片一区视频 | 久久久久9999亚洲精品 | 国产在线观看污片 | 亚洲欧美日韩一区二区三区在线观看 | 开心激情久久 | 在线激情av电影 | 婷婷久久五月 | 亚洲婷婷网 | 999毛片| 一级理论片在线观看 | 日韩久久激情 | 久久久香蕉视频 | 国产精品久久久久久久久久三级 | 欧美在线观看视频一区二区 | 香蕉视频网址 | 男女激情免费网站 | 久久久久久在线观看 | 欧美精品被 | 国产精品免费观看国产网曝瓜 | 美女性爽视频国产免费app | 亚洲美女视频在线观看 | 国产欧美在线一区二区三区 | 天天在线视频色 | 96av麻豆蜜桃一区二区 | 青青河边草免费观看 | 成人黄色片免费 | 在线观看www视频 | 手机在线黄色网址 | 正在播放亚洲精品 | 精品久久久久久亚洲 | 99re国产 | .精品久久久麻豆国产精品 亚洲va欧美 | 中文字幕电影一区 | 91麻豆精品国产91久久久久 | 久久黄色片子 | 国产精品大片免费观看 | 91视频 - 88av | 婷婷丁香久久五月婷婷 | 久久久久成人精品亚洲国产 | 亚洲成人动漫在线观看 | 久久久免费少妇 | 91黄色影视 | 国产精品麻豆三级一区视频 | 久草在线久草在线2 | 伊人五月 | 成年人在线免费看片 | mm1313亚洲精品国产 | 在线a人v观看视频 | 久久免费一级片 | 久久色视频 | 2023年中文无字幕文字 | 日韩黄色免费在线观看 | 国产精品久久久久久久久久不蜜月 | 日日操天天射 | 亚洲一二三区精品 | 免费看国产一级片 | 91女神的呻吟细腰翘臀美女 | 2019久久精品 | 免费在线中文字幕 | 99久久精品国产一区二区成人 | 亚洲电影av在线 | www.久久视频 | 亚洲视频一区二区三区在线观看 | 国产一级淫片免费看 | 天天干天天操天天入 | 久久人人爽人人爽人人片av软件 | 中文字幕 成人 | 99这里只有精品视频 | 色网站在线 | 91精品国产自产在线观看 | 久九视频 | 91在线看黄 | 91久久精品一区二区三区 | www.色婷婷.com| 欧美日本啪啪无遮挡网站 | 国精产品满18岁在线 | 日韩剧| 国产精品一区二区三区在线播放 | 中文字幕一区二区三区四区 | 丁香九月激情综合 | 高清不卡免费视频 | 久久黄页 | 色婷婷免费视频 | 欧美日韩国产一二三区 | 欧美日韩视频观看 | 成人小视频在线免费观看 | 免费精品国产va自在自线 | 亚洲天天草 | 久久成 | 免费在线观看国产精品 | 天天干天天干天天干 | 91成人免费| 精品国产自在精品国产精野外直播 | 国产福利资源 | 伊在线视频 | 伊人手机在线 | 黄在线免费看 | 国产精品二区三区 | 亚洲精品免费看 | 国产一级视频免费看 | 尤物一区二区三区 | 伊人天堂网 | 在线免费观看欧美日韩 | 97超碰人人网 | 免费在线色电影 | 国产精品一区二区三区免费看 | 国产一区二区在线免费 | 久久国产精品免费 | 99视频精品免费视频 | 日本在线精品视频 | 7777精品伊人久久久大香线蕉 | 激情欧美丁香 | 在线观看国产成人av片 | 色婷婷六月 | 中文字幕第一页在线播放 | 久久超碰免费 | 中文字幕一区二区三 | 欧美福利视频 | 夜夜操天天干, | 久久国产二区 | 日韩网站免费观看 | 天天射天天艹 | 在线色吧 | 夜夜操综合网 | 国产精品1区2区 | 天天操夜夜操国产精品 | 久久精品视频观看 | 免费视频久久久久 | 香蕉久草 | 色大片免费看 | 色综合在 | 国产 日韩 在线 亚洲 字幕 中文 | 91大神电影 | 国产成人三级在线 | 日韩久久久久久 | 我爱av激情网| 久久久久麻豆 | 中文字幕日韩国产 | 欧美日视频 | 久草久草在线 | 午夜视频在线观看网站 | 国产精品丝袜 | 91久久偷偷做嫩草影院 | 免费三级骚 | 免费一级片观看 | 97人人模人人爽人人少妇 | 狠狠干成人 | 五月综合激情 | 欧美成人91| 色国产精品 | 久久伊人八月婷婷综合激情 | 丁香五婷 | 久久不射影院 | 三上悠亚一区二区在线观看 | 日韩美一区二区三区 | 亚洲精品综合在线观看 | 特级xxxxx欧美 | 西西4444www大胆艺术 | 美女网站在线 | wwwwww国产 | 中文字幕 二区 | 国产大陆亚洲精品国产 | 手机在线看永久av片免费 | 国产成人久久精品一区二区三区 | 韩国精品福利一区二区三区 | 成人午夜精品久久久久久久3d | 91视频啊啊啊 | 久久久久久久久综合 | 欧美最猛性xxx | 久久99热久久99精品 | 色99视频| 国产在线观看免费观看 | 中文在线字幕免费观 | 国产视频在线观看一区 | 深夜福利视频一区二区 | 奇米影视8888| 国产小视频免费在线网址 | 91你懂的 | 婷婷国产精品 | 婷婷综合网 | 久久综合九色九九 | 国产精品一区二区在线免费观看 | 91精品久久久久久粉嫩 | 9在线观看免费高清完整版 玖玖爱免费视频 | 国产涩涩在线观看 | 日本爱爱免费视频 | 97在线影视 | 日本黄色黄网站 | 色偷偷av男人天堂 | 人人揉人人揉人人揉人人揉97 | 欧美老少交 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 亚洲成人黄色在线观看 | 四虎在线观看视频 | 最新中文字幕在线资源 | 免费黄色小网站 | 久久国产精品久久w女人spa | 成人免费观看网址 | 91成人免费看片 | 久久一区国产 | 99久久精品国产毛片 | 中文字幕最新精品 | 久久久久久久综合色一本 | 色丁香综合 | 精品国产一区二区三区四区在线观看 | 91看片在线 | 久久久免费观看视频 | 国产精品免费观看久久 | 精品在线观看免费 | 久久久精品国产一区二区 | 天天综合久久综合 | 国产一二三区在线观看 | 992tv又爽又黄的免费视频 | 超碰在线观看99 | 午夜免费视频网站 | 国内精品久久久久影院一蜜桃 | 国产麻豆精品在线观看 | 久草在线播放视频 | 91插插影库 | 亚洲成熟女人毛片在线 | 天堂成人在线 | 天堂视频一区 | 91亚州| 国产色视频 | 超碰免费av | 一本色道久久综合亚洲二区三区 | 国产精品久久99综合免费观看尤物 | 午夜久久久久久久 | 精品一区免费 | 国产精品国产三级国产aⅴ入口 | 日韩18p| 久久草在线精品 | 天天操操操操操操 | 国产精品3 | 日韩高清av | 国产亚洲在线观看 | 热re99久久精品国产66热 | 91成年人视频 | 久草a在线 | 99精品99 | 亚洲欧美一区二区三区孕妇写真 | av在线一级 | 欧美亚洲另类在线视频 | 欧美一级片在线免费观看 | 不卡电影一区二区三区 | 日韩高清在线一区 | 中文字幕在线资源 | 在线观看网站黄 | 久久免费视频4 | 日韩一级网站 | 国产精品在线看 | 三级小视频在线观看 | 9797在线看片亚洲精品 | 国产精品入口麻豆 | 久久99精品国产麻豆宅宅 | 97日日碰人人模人人澡分享吧 | 天堂在线成人 | 亚洲永久精品一区 | 人人爽人人片 | 国产精品久久久久久五月尺 | 中文字幕国产视频 | 蜜桃视频在线视频 | 久久精品99国产精品日本 | 99产精品成人啪免费网站 | 日韩精品一区电影 | 波多野结衣电影一区 | 在线免费观看欧美日韩 | 欧美经典久久 | 99久久成人 | 天天色天天干天天 | 亚洲婷婷网| 视频福利在线观看 | 一区精品久久 | 久久五月激情 | 日本久久中文 | 狠狠躁日日躁狂躁夜夜躁av | 国产中文字幕国产 | 成年人免费av | 久久在线观看 | 一区二区视频在线播放 | 91新人在线观看 | 久久九九免费 | 人九九精品 | 久久免费公开视频 | 久久久精品视频网站 | 不卡在线一区 | 成全在线视频免费观看 | 黄色av成人在线 | 亚洲精品国产综合99久久夜夜嗨 | 欧美人牲 | 韩日视频在线 | 久久久久久久国产精品视频 | 黄a网| 99久久综合国产精品二区 | 久久久久久久久久久影院 | av在线在线 | 四虎免费在线观看 | www国产亚洲精品久久网站 | 亚洲狠狠干| 天天色宗合 | 国产亲近乱来精品 | 国产成人av | 天天色天天干天天 | 大型av综合网站 | 欧美日韩国产一区二区三区在线观看 | 91成人破解版 | 黄色录像av | 91大神电影| 婷婷激情小说网 | 正在播放久久 | 丰满少妇在线观看 | 亚洲一级久久 | 天天操网站 | 天天干,狠狠干 | 91看片淫黄大片一级在线观看 | 久久国产成人午夜av影院潦草 | 国产成人精品av在线 | 成人高清在线观看 | 天天插视频 | 欧美日韩在线免费观看视频 | 国产在线视频一区二区 | 欧美一区免费观看 | 欧美日韩在线观看不卡 | 天天干,天天操,天天射 | 天天曰| 久久黄色免费视频 | 日本精品视频免费 | 一区二区三区免费在线观看视频 | 国产美女精品视频 | 国产麻豆精品久久 | 日韩精品一卡 | av中文字幕日韩 | 久久久久99999| 中文字幕91 | 成人午夜黄色影院 | 人人插人人艹 | 国产精品第 | 青青久草在线视频 | 99精品国产福利在线观看免费 | 亚洲更新最快 | 久久99国产精品久久99 | 亚洲综合色视频在线观看 | 91大神在线看 | 91热| 91精品免费在线观看 | 午夜av网站 | 欧美日韩在线视频一区 | 日韩在线视频观看 | 国产在线国偷精品产拍免费yy | 午夜性福利 | 麻豆一二三精选视频 | 国产在线观看地址 | 在线精品亚洲 | 国产第一页精品 | 中文字幕第一页在线播放 | 日本成人黄色片 | 国产成人亚洲在线观看 | 久久av高清 | 成人动漫精品一区二区 | 黄色av电影一级片 | 青青河边草免费视频 | 国产成人a亚洲精品v | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 国产精品久久久久久久久费观看 | 免费看十八岁美女 | 国产精品美| 在线a视频免费观看 | 成人久久综合 | 午夜久久影视 | 制服丝袜一区二区 | 久久久免费看视频 | 操操操com | 999免费视频 | 狠狠色噜噜狠狠 | 免费av小说 | 一区二区三区污 | 午夜av色 | 黄色av电影网 | 精品国产一区二区三区蜜臀 | 免费在线成人 | 国产一区二区视频在线播放 | 日韩欧美电影在线观看 | 国产拍揄自揄精品视频麻豆 | 草樱av | 国产精品久久久久久久久久久久午 | 欧美乱大交 | 永久免费观看视频 | 亚洲一级特黄 | 日韩欧美有码在线 | 国产精品久久 | 久久精品成人热国产成 | 久久久国产成人 | 中文字幕一区二区三区乱码不卡 | 免费一级片在线 | 偷拍视频一区 | 国产五码一区 | 91资源在线播放 | 国产精品久久久久av | 久久无码av一区二区三区电影网 | 操操操人人 | 久久免费视频网 | 色在线视频 | 国产亚洲精品久久久久秋 | 亚洲视频久久 | 天天干天天操天天拍 | 操久久免费视频 | 日韩av电影中文字幕在线观看 | 天天操天天艹 | 亚洲成人精品久久久 | 看片网站黄色 | 97偷拍在线视频 | 亚洲五月综合 | 精品国产99 | 在线观看日本高清mv视频 | 久久久亚洲麻豆日韩精品一区三区 | 亚洲国产精品成人综合 | 日韩av免费一区 | 成人羞羞免费 | 日韩视频专区 | 久久久久草 | 久久久久国产a免费观看rela | 婷婷激情影院 | 久久久久久国产精品999 | 伊人久久国产 | 国产麻豆成人传媒免费观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 97色婷婷人人爽人人 | 日韩欧美电影 | 射久久 | 天天爽天天爽 | 狠狠色丁香九九婷婷综合五月 | 亚洲国产视频在线 | 久久婷五月| 在线一二三区 | 久久96国产精品久久99漫画 | 久久永久视频 | 午夜精品久久久久久久久久 | 中文字幕有码在线 | 亚洲精品视频免费看 | 亚洲闷骚少妇在线观看网站 | 欧美高清成人 | 麻豆一二 | 国产人成在线视频 | 久久久久久久综合色一本 | 亚洲精品国 | 成年人在线观看视频免费 | 免费av黄色 | 91社区国产高清 | 亚洲激情六月 | 蜜臀久久99静品久久久久久 | 在线观看你懂的网站 | 久久在线视频在线 | a天堂最新版中文在线地址 久久99久久精品国产 | 欧美日韩啪啪 | 狠狠狠狠狠狠干 | 国产人成一区二区三区影院 | 国产精品久久久99 | 涩涩在线| 在线观看日韩精品视频 | 美女视频黄色免费 | 国产成人精品在线播放 | www.夜夜干.com | 九七人人干| 天天色天天射天天操 | 九九九热 | 在线中文字幕电影 | 亚洲精品国产片 | 91av在| 亚洲精品国产精品乱码在线观看 | 夜又临在线观看 | 亚洲高清在线视频 | 久久综合久久综合九色 | 亚洲高清免费在线 | 成人午夜剧场在线观看 | 成年人免费在线观看网站 | 精品欧美一区二区精品久久 | 日本中文字幕电影在线免费观看 | 亚洲精品视频免费在线观看 | 国产高清精品在线 | 欧美日韩免费观看一区二区三区 | 久久精品视频网站 | 国产精品成人aaaaa网站 | 中文字幕在线免费观看视频 | 91在线视频 | 亚洲午夜av久久乱码 | 国产网站色 | 天天操天天射天天爱 | 国产一区二区三区免费在线 | 高清国产午夜精品久久久久久 | 成人三级黄色 | 色狠狠婷婷 | 免费在线观看午夜视频 | 91视频首页 | 国产视频一区二区三区在线 | 欧美日韩中文国产一区发布 | 亚洲国产日韩欧美 | 97成人在线视频 | 国内99视频 | 在线观看的av| 一区二区三区四区五区六区 | 中文字幕在线日亚洲9 | www.xxxx变态.com | 手机av片 | 一区二区 精品 | 亚洲精品国产精品久久99 | 高潮毛片无遮挡高清免费 | 日韩在线视频不卡 | 日韩电影在线看 | 伊人日日干 | 丁香婷婷色月天 | 四虎影视成人永久免费观看亚洲欧美 | 国产精品女人网站 | 韩国一区二区av | 国产一级电影在线 | 国产一区免费 | 日本特黄一级片 | 国产精品成人一区二区三区 | 午夜精品一区二区三区在线观看 | 最新午夜电影 | 一本色道久久综合亚洲二区三区 | 激情综合一区 | 黄网站app在线观看免费视频 | 91精品国产乱码 | 国产色中涩 | 亚洲国产精久久久久久久 | 免费看的黄网站软件 | 日韩欧美在线视频一区二区 | 久久免费国产视频 | 天天天操天天天干 | 国产一级免费片 | av大全免费在线观看 | 成年人在线观看免费视频 | 日韩特级片| 中文有码在线 | 久久激情综合网 | 九九在线视频免费观看 | 国产精品精品久久久 | 国内揄拍国内精品 | 麻豆视频一区二区 | 国产精品12 | 99久久精品久久久久久清纯 | 99亚洲天堂 | 欧美成人精品三级在线观看播放 | 久久久久久久久影视 | 91av在线不卡 | 久久九九精品久久 | 黄色在线网站噜噜噜 | 青青河边草免费直播 | 91在线影院| 最新高清无码专区 | 天天色天天操综合 | 亚洲片在线观看 | 99久久婷婷国产综合亚洲 | a亚洲视频 | 五月天久久 | 九色琪琪久久综合网天天 | 91av久久| 久久视频在线免费观看 | 国产综合在线观看视频 | 91手机电视 | 久久99精品波多结衣一区 | 四川bbb搡bbb爽爽视频 | 激情丁香5月 | 人人超在线公开视频 | 欧美日本不卡高清 | av电影免费在线看 | 麻豆国产视频 | 国产在线a免费观看 | 久久影院一区 | 在线视频中文字幕一区 | 久久久精品福利视频 | av在线网站大全 | 午夜在线国产 | 欧美视频国产视频 | 久久久午夜精品福利内容 | 国产精品久久久久久69 | 欧美日韩国产一二 | 免费日韩 精品中文字幕视频在线 | 五月色婷 | 亚洲毛片在线观看. | 午夜精品成人一区二区三区 | 国产精品久久久久久久午夜片 | 国产中文字幕视频在线观看 | 伊人天天狠天天添日日拍 | 色噜噜在线观看 | 久二影院| 国产美女在线精品免费观看 | 超碰在97| 一区二区精品 | 久久久久久网站 | 久久99国产综合精品免费 | 国产免费大片 | 久久公开视频 | 午夜体验区 | 色婷婷激情网 | 亚洲视频2 | 精品一区二区av | 免费福利在线视频 | 久久久久久久久久久综合 | 成人在线免费观看网站 | 99久高清在线观看视频99精品热在线观看视频 | 精品一二区 | 日韩成人免费在线观看 | 成人在线播放网站 | 久久久www成人免费精品 | 国产日韩精品一区二区三区在线 | 国产 日韩 中文字幕 | 最近在线中文字幕 | 九九在线高清精品视频 | 亚洲不卡123 | 99免在线观看免费视频高清 | 欧美精品一二 | 麻豆免费看片 | 狠狠的干狠狠的操 | 玖玖玖影院 | a资源在线 | 天天干天天摸天天操 | 九色视频网 | 最新国产精品拍自在线播放 | 婷婷丁香国产 | 中文在线天堂资源 | 天天干天天天天 | 国产午夜精品一区 | 亚洲精品1234区 | 在线影院中文字幕 | 韩国在线一区 | 国产精品白浆视频 | 91在线中文| 久久精品中文字幕免费mv | 国产视频二 | 97视频免费在线 | 国产视频网站在线观看 | 日韩精品一区二区三区电影 | 日韩电影一区二区三区在线观看 | 欧美精品一二三 | 在线视频电影 | 精品麻豆| 国产精品情侣视频 | 99久久夜色精品国产亚洲96 | 国产人在线成免费视频 | 亚洲成人网在线 | 久久久久久美女 | 婷婷av电影| 日韩在线观看视频在线 | 亚洲精品麻豆 | 国产三级午夜理伦三级 | 99视频| 美女黄频视频大全 | 最新色站 | 国产精品永久免费视频 | 五月天综合网 | 特级毛片爽www免费版 | 精品视频中文字幕 | 超碰最新网址 | 日本久久久精品视频 | 看国产黄色片 | 在线免费观看欧美日韩 | 免费高清在线观看电视网站 | 91综合视频在线观看 | 在线观看av免费观看 | 色片网站在线观看 | 五月婷婷中文字幕 | 国产亚洲在线观看 | 五月婷婷在线播放 | 91色偷偷| 精品亚洲一区二区三区 | 91精品视频一区 | 高清精品久久 | 日韩在线观看的 | 黄色软件视频大全免费下载 | av电影一区二区 | 91九色蝌蚪视频网站 | 亚洲一级黄色 | 亚洲国产欧美在线看片xxoo | 久久久精品亚洲 | 黄色的视频 | 亚洲综合成人专区片 | 久久综合国产伦精品免费 | 玖玖在线精品 | 美女网站免费福利视频 | 中文字幕永久在线 | 极品国产91在线网站 | 色婷婷六月天 | 久久久久综合网 | 午夜日b视频 | 久草资源在线 | 日本精品一区二区三区在线播放视频 | 欧美日韩国产亚洲乱码字幕 | 人人看人人 | 日本精品一区二区三区在线播放视频 | 国产精品你懂的在线观看 | www.香蕉视频在线观看 | 在线观看国产成人av片 | 国产精品一区二区av日韩在线 | 亚洲精品午夜视频 | 国产淫片 | 最近的中文字幕大全免费版 | 99精品免费久久久久久久久日本 | 久久亚洲影视 | 人人精久 | 国产精品美女www爽爽爽视频 | 91视频高清免费 | 麻豆94tv免费版 | 日韩mv欧美mv国产精品 | 九九在线视频免费观看 | 91久久精品一区 | 91av网址 | 亚洲免费小视频 | 91色吧 | 丁五月婷婷 | 激情欧美丁香 | 亚洲天堂网在线视频观看 | 国产成人精品一区二区在线观看 | 97在线看 | 人人dvd | 中文字幕在线观看完整版 | 亚洲一级片av | 久久99国产精品久久 | 成人av网页 | 午夜精品久久久99热福利 | 国产成人一区二区三区 | 日日摸日日添夜夜爽97 | 在线观看国产永久免费视频 | 国产精品国产三级国产专区53 | 日韩在线视频观看 | 色综合天天综合网国产成人网 | 亚洲精品久久久久中文字幕m男 | 天天干天天干天天 | 国产五十路毛片 | 九九色在线 | 婷婷午夜天 | 亚洲精品毛片一级91精品 | 一区二区三区在线免费观看视频 | 亚洲国产最新 | 制服丝袜在线91 | 国产久草在线观看 | 亚洲精品久久久久久中文传媒 | 91av资源网| 激情婷婷欧美 | 色先锋资源网 | 成人动漫一区二区三区 | 91精品国产乱码在线观看 | 色噜噜日韩精品一区二区三区视频 | 亚洲日本三级 | 在线视频 成人 | 国产精品永久免费 | 婷婷视频在线观看 | 最近的中文字幕大全免费版 | 国产精品久久久久永久免费观看 | www.黄色 | 成人a大片| 国产成人精品电影久久久 | 国产免费成人av | 中文字幕高清有码 | 香蕉手机在线 | 一级做a爱片性色毛片www | 精品视频在线免费观看 | 国产激情电影综合在线看 | 中文在线免费看视频 | av中文字幕第一页 | 青春草视频在线播放 | 欧美久久久久久久久久 | 成人黄色小视频 | 国产不卡在线 | 日韩精品在线视频 | 91桃色在线免费观看 | 黄色软件大全网站 | 片黄色毛片黄色毛片 | 99re久久资源最新地址 | 狠狠狠干| 欧美成人性网 | 在线观看视频国产 | 日韩欧美国产免费播放 | 国产麻豆视频免费观看 | 国产在线精品一区 | 在线看欧美 | 9999在线观看| 久久天天躁夜夜躁狠狠85麻豆 | 精品久久久久久久久久 | 国产美女网站在线观看 | 久草在线一免费新视频 | 久久国产露脸精品国产 | 久久国产一区二区 | 欧美色图88 | 17婷婷久久www | 国产精品久久久久999 | 国产精品99久久久久的智能播放 | 国产精品露脸在线 | 国内精品久久久久久久97牛牛 | 国产精品自在线拍国产 | 色视频网页| 国产精品乱码一区二区视频 | 久久久男人的天堂 | 婷婷射五月 | 国产精品国产亚洲精品看不卡 | 日本精品一区二区三区在线观看 | 日韩中文字幕免费视频 | 97成人精品区在线播放 | 免费aa大片 | 成人免费观看完整版电影 | 黄a在线看 | 一个色综合网站 | 欧美少妇xx | 婷婷av电影 | 欧美激情视频一区二区三区免费 | 国产一级特黄电影 | 欧美小视频在线 | 免费影视大全推荐 | 国产精品久久电影网 | 国产精品久久久久久久免费 | 九九三级毛片 | 亚洲韩国一区二区三区 | 国产精品黑丝在线观看 | 中文在线a√在线 | 日韩av黄| 韩日电影在线观看 | 日韩xxxx视频 | 人人草在线视频 | 91在线视频免费91 | 免费影视大全推荐 | 丰满少妇在线观看资源站 | www日韩欧美| 国产日韩在线视频 | 黄色1级大片 | 手机av在线网站 | 97在线视频免费看 | 国产精品电影一区 | 中文字幕在线高清 | 9色在线视频 | 99爱视频 | 精品国产乱码一区二 | 日韩国产精品一区 | 黄色的网站免费看 | 色伊人网 | 天天天天射 | 日韩午夜av | 999成人 | 99久久精品免费看国产四区 | 久久精品国产成人精品 | 久草在线资源免费 | 视频99爱| 久久精品久久久久电影 | 综合网av | 国产免费观看视频 | 偷拍福利视频一区二区三区 | 91天天操 | 麻豆果冻剧传媒在线播放 | 在线黄色国产电影 | 成人在线视频你懂的 | 欧美先锋影音 | 久久不卡国产精品一区二区 | 午夜精品福利一区二区三区蜜桃 | 免费在线91 | 欧美肥妇free | 最近中文字幕第一页 | 2019中文字幕网站 | 99久高清在线观看视频99精品热在线观看视频 | 国产精品va在线观看入 | 视频一区亚洲 | 蜜桃av久久久亚洲精品 | 国产精品18久久久久久久久 | 中文字幕在线观看第三页 | 亚洲欧美国产日韩在线观看 | 久久久久久亚洲精品 | 99九九热只有国产精品 | 免费看一级黄色 | 精品视频久久久久久 | 久久黄色a级片 | 久久久久久久久久久久影院 | 久久久国产精品麻豆 | 中文字幕电影在线 | 免费在线观看一级片 | 中文字幕中文 | 成人精品999| 久久蜜桃av | 日韩精品2区| 国产中文a| 亚洲国产天堂av | 日韩精品免费在线视频 | www亚洲一区 | 国产黄色片免费在线观看 | 日韩精品一区二区三区免费视频观看 | 久久中文字幕视频 | 人人爽人人舔 | 亚洲一区二区高潮无套美女 | 丁香婷婷综合网 | 欧美 激情 国产 91 在线 | 国产精品视频全国免费观看 | 国产一区二区高清视频 | 亚洲精品视频二区 | 在线看国产日韩 | 成年人黄色免费网站 | 五月婷在线观看 | 日韩免费精品 | 91网站在线视频 | 久久 国产一区 | 中文字幕亚洲不卡 | 色婷婷婷| 毛片网站在线观看 | 色婷婷综合久久久久中文字幕1 | 天天爽天天做 | 福利视频精品 | 成人免费视频播放 | 91免费在线看片 | aa级黄色大片| 在线免费观看涩涩 | 日韩精品不卡在线观看 | 最新一区二区三区 | 久久av福利| 视频在线99 | 91精品视频在线观看免费 | 亚洲精品字幕在线 | 黄色av一区 | 人人插人人费 | 欧美一级特黄aaaaaa大片在线观看 | 久久免费视频7 | 人人爽人人爽av | 成人毛片久久 | 激情婷婷av | 欧美日韩视频免费看 | 午夜免费福利视频 | 久草在线资源网 | 成人理论电影 | 久久99热国产 | 久久精品视频网站 | 国产精品99久久久久久宅男 | 欧美一区二区三区在线视频观看 | 国产黄在线免费观看 | 99在线视频网站 | 欧美日韩一区二区三区不卡 | 国产在线精品国自产拍影院 | 久久久久亚洲精品国产 | av高清在线 | 四虎在线视频免费观看 | 国产粉嫩在线观看 | 国产精品福利无圣光在线一区 | 免费h漫在线观看 | 欧美aaaxxxx做受视频 | 黄网站免费久久 | 国精产品一二三线999 | 日韩视频免费在线观看 | 激情欧美在线观看 | 国产精品观看 | 五月综合激情 | 色香com.| 欧美日韩视频在线 | aⅴ精品av导航 | 久久精品网站视频 | 日韩在线播放视频 | 综合视频在线 | 日日夜夜av | 九九免费精品视频在线观看 | 久久亚洲私人国产精品 | 中文字幕资源站 | 久草在线免费电影 | www.成人精品 | 日本美女xx | 国产成人精品网站 | 天天爱天天操天天射 | 99高清视频有精品视频 | 日韩欧美在线观看一区二区 |