婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL Shell的介紹以及安裝

MySQL Shell的介紹以及安裝

熱門標簽:400電話辦理服務價格最實惠 html地圖標注并導航 400電話變更申請 催天下外呼系統(tǒng) 北京金倫外呼系統(tǒng) 武漢電銷機器人電話 呂梁外呼系統(tǒng) 大豐地圖標注app 南太平洋地圖標注

01 ReplicaSet的架構

    前面的文章中,我們說了ReplicaSet的基本概念和限制以及部署前的基本知識。今天我們來看InnoDB ReplicaSet部署過程中的兩個重要組件之一的MySQL Shell,為了更好的理解MySQL Shell,畫了一張圖,如下:  

通過上面的圖,不難看出,MySQL Shell是運維人員管理底層MySQL節(jié)點的入口,也就是DBA執(zhí)行管理命令的地方,而MySQL Router是應用程序連接的入口,它的存在,讓底層的架構對應用程序透明,應用程序只需要連接MySQL Router就可以和底層的數(shù)據(jù)庫打交道,而數(shù)據(jù)庫的主從架構,都是記錄在MySQL Router的原信息里面的。

今天,我們主要來看MySQL Shell的搭建過程。

02 MySQL Shell的介紹以及安裝

   MySQL Shel是一個客戶端工具,用于管理Innodb Cluster或者Innodb ReplicaSet,可以簡單理解成ReplicaSet的一個入口。

    它的安裝過程比較簡單:在MySQL官網(wǎng)下載對應版本的MySQL Shell即可。地址如下:

https://downloads.mysql.com/archives/shell/

這里使用8.0.20版本

下載完畢之后,在Linux服務器進行解壓,然后就可以通過這個MySQL Shell來連接線上的MySQL服務了。

我的線上MySQL地址分別是:

192.168.1.10  5607

192.168.1.20  5607

可以直接通過下面的命令來連接MySQL服務:

/usr/local/mysql-shell-8.0.20/bin/mysqlsh '$user'@'$host':$port --password=$pass

成功連接之后的日志如下:

MySQL Shell 8.0.20

Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type '\help' or '\&;' for help; '\quit' to exit.
WARNING: Using a password on the command line interface can be insecure.
Creating a session to 'superdba@10.185.13.195:5607'
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 831
Server version: 8.0.19 MySQL Community Server - GPL
No default schema selected; type \use schema> to set one.
 MySQL  192.168.1.10:5607 ssl  JS > 
 MySQL  192.168.1.10:5607 ssl  JS > 
 MySQL  192.168.1.10:5607 ssl  JS > 
 MySQL  192.168.1.10:5607 ssl  JS > 

03 MySQL Shell連接數(shù)據(jù)庫并創(chuàng)建ReplicaSet

   上面已經(jīng)介紹了使用MySQL Shell連接數(shù)據(jù)庫的方法了,現(xiàn)在我們來看利用MySQL Shell來創(chuàng)建ReplicaSet的方法:

1、首先使用dba.configureReplicaSetInstance命令來配置副本集,并創(chuàng)建副本集的管理員。

MySQL  192.168.1.10:5607 ssl  JS > dba.configureReplicaSetInstance('root@192.168.1.10:5607',{clusterAdmin:"'rsadmin'@'%'"})
Configuring MySQL instance at 192.168.1.10:5607 for use in an InnoDB ReplicaSet...

This instance reports its own address as 192.168.1.10:5607
WARNING: User 'rsadmin'@'%' already exists and will not be created. However, it is missing privileges.
The account 'rsadmin'@'%' is missing privileges required to manage an InnoDB cluster:
GRANT REPLICATION_APPLIER ON *.* TO 'rsadmin'@'%' WITH GRANT OPTION;
Dba.configureReplicaSetInstance: The account 'root'@'192.168.1.10' is missing privileges required to manage an InnoDB cluster. (RuntimeError)

可以看到,上面的命令中,我們配置了副本集的一個實例:192.168.1.10:5607,并創(chuàng)建了一個管理員賬號rsadmin,同時這個管理員擁有clusterAdmin的權限。

返回的結(jié)果中,有一個報錯信息,它提示我們登陸的root賬號少了replication_applier的權限,因此無法使用root賬號對rsadmin賬號授權。我們給root賬號補充replication_applier權限之后,重新執(zhí)行上面的命令,結(jié)果如下:

MySQL  192.168.1.10:5607 ssl  JS > dba.configureReplicaSetInstance('root@192.168.1.10:5607',{clusterAdmin:"'rsadmin'@'%'"})
Configuring MySQL instance at 192.168.1.10:5607 for use in an InnoDB ReplicaSet...

This instance reports its own address as 192.168.1.10:5607
User 'rsadmin'@'%' already exists and will not be created.

The instance '192.168.1.10:5607' is valid to be used in an InnoDB ReplicaSet.

The instance '192.168.1.10:5607' is already ready to be used in an InnoDB ReplicaSet.

這次執(zhí)行成功了。

我們登陸到底層的192.168.1.10上,查看rsadmin賬號,可以發(fā)現(xiàn),賬號已經(jīng)生成了,信息如下:

select user,host,concat(user,"@'",host,"'"),authentication_string from mysql.user where user like "%%rsadmin";
+---------+------+----------------------------+-------------------------------------------+
| user    | host | concat(user,"@'",host,"'") | authentication_string                     |
+---------+------+----------------------------+-------------------------------------------+
| rsadmin | %    | rsadmin@'%'                | *2090992BE9B9B27D89906C6CB13A8512DF49E439 |
+---------+------+----------------------------+-------------------------------------------+
1 row in set (0.00 sec)

show grants for  rsadmin@'%';
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for rsadmin@%                                                                                                                                                                                                                                                        |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, RELOAD, SHUTDOWN, PROCESS, FILE, SUPER, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE USER ON *.* TO `rsadmin`@`%` WITH GRANT OPTION                                                                                                                 |
| GRANT BACKUP_ADMIN,CLONE_ADMIN,PERSIST_RO_VARIABLES_ADMIN,SYSTEM_VARIABLES_ADMIN ON *.* TO `rsadmin`@`%` WITH GRANT OPTION                                                                                                                                                  |
| GRANT INSERT, UPDATE, DELETE ON `mysql`.* TO `rsadmin`@`%` WITH GRANT OPTION                                                                                                                                                                                                |
| GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `mysql_innodb_cluster_metadata`.* TO `rsadmin`@`%` WITH GRANT OPTION          |
| GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `mysql_innodb_cluster_metadata_bkp`.* TO `rsadmin`@`%` WITH GRANT OPTION      |
| GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `mysql_innodb_cluster_metadata_previous`.* TO `rsadmin`@`%` WITH GRANT OPTION |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6 rows in set (0.00 sec)

注意,如果我們加入的副本集實例是當前連接的實例,那么也可以使用簡單的寫法:

dba.configureReplicaSetInstance('',{clusterAdmin:"'rsadmin'@'%'"})

2、使用dba.createReplicaSet命令創(chuàng)建副本集,并將結(jié)果保存在一個變量里面,如下:

MySQL  192.168.1.10:5607 ssl  JS > var rs = dba.createReplicaSet("yeyz_test")
A new replicaset with instance '192.168.1.10:5607' will be created.

* Checking MySQL instance at 192.168.1.10:5607

This instance reports its own address as 192.168.1.10:5607
192.168.1.10:5607: Instance configuration is suitable.

* Updating metadata...

ReplicaSet object successfully created for 192.168.1.10:5607.
Use rs.addInstance() to add more asynchronously replicated instances to this replicaset and rs.status() to check its status.

可以看到,我們創(chuàng)建了一個yeyz_test的副本集,并將結(jié)果保存在變量rs當中。

3、使用rs.status()查看當前的副本集成員

MySQL  192.168.1.10:5607 ssl  JS > rs.status()
{
    "replicaSet": {
        "name": "yeyz_test",
        "primary": "192.168.1.10:5607",
        "status": "AVAILABLE",
        "statusText": "All instances available.",
        "topology": {
            "192.168.1.10:5607": {
                "address": "192.168.1.10:5607",
                "instanceRole": "PRIMARY",
                "mode": "R/W",
                "status": "ONLINE"
            }
        },
        "type": "ASYNC"
    }
}

這里面,可以看到,當前ReplicaSet里面已經(jīng)有192.168.1.10:5607這個實例的,他的狀態(tài)是available,他的角色是Primary。

4、此時我們使用rs.addInstance命令加入第2個節(jié)點,并使用rs.status查看狀態(tài)。

這里需要注意,加入第二個節(jié)點的時候,有一個數(shù)據(jù)同步的過程,這個數(shù)據(jù)同步有2中策略:

策略一:全量恢復

使用MySQL Clone組件,然后使用克隆快照來覆蓋新實例上面的所有數(shù)據(jù)。這種方法非常適合空白實例加入到Innodb 副本集中。

策略二:增量恢復

它依賴MySQL的復制功能,將所有的丟失的事務復制到新實例上,如果新實例上的事務很少,則這個過程會很快。這個方法需要保證集群中至少存在一個實例,它保存了這些缺失事務的binlog,如果缺失的事務的binlog已經(jīng)清理,則這個方法不能使用。

當一個實例加入一個集群的時候,MySQL Shell會自動嘗試挑選一個合適的策略來同步數(shù)據(jù),不需要人為干預,如果它無法安全的選擇同步方法,則會提供給DBA一個選項,讓你選擇是通過Clone或者增量同步的方法來實現(xiàn)數(shù)據(jù)同步。

下面的例子中,就是通過自動選擇增量同步的方法來同步數(shù)據(jù)的:

MySQL  192.168.1.10:5607 ssl  JS > rs.addInstance("192.168.1.20:5607")
WARNING: Concurrent execution of ReplicaSet operations is not supported because the required MySQL lock service UDFs could not be installed on instance '10.41.28.127:5607'.
Make sure the MySQL lock service plugin is available on all instances if you want to be able to execute some operations at the same time. The operation will continue without concurrent execution support.

Adding instance to the replicaset...

* Performing validation checks

This instance reports its own address as 192.168.1.20:5607
192.168.1.20:5607: Instance configuration is suitable.

* Checking async replication topology...

* Checking transaction state of the instance...
The safest and most convenient way to provision a new instance is through automatic clone provisioning, which will completely overwrite the state of '192.168.1.20:5607' with a physical snapshot from an existing replicaset member. To use this method by default, set the 'recoveryMethod' option to 'clone'.

WARNING: It should be safe to rely on replication to incrementally recover the state of the new instance if you are sure all updates ever executed in the replicaset were done with GTIDs enabled, there are no purged transactions and the new instance contains the same GTID set as the replicaset or a subset of it. To use this method by default, set the 'recoveryMethod' option to 'incremental'.

Incremental state recovery was selected because it seems to be safely usable.

* Updating topology
** Configuring 192.168.1.20:5607 to replicate from 192.168.1.10:5607
** Waiting for new instance to synchronize with PRIMARY...

The instance '192.168.1.20:5607' was added to the replicaset and is replicating from 192.168.1.20:5607.

MySQL  192.168.1.10:5607 ssl  JS >
MySQL  192.168.1.10:5607 ssl  JS > rs.status()
{
    "replicaSet": {
        "name": "yeyz_test",
        "primary": "192.168.1.10:5607",
        "status": "AVAILABLE",
        "statusText": "All instances available.",
        "topology": {
            "192.168.1.10:5607": {
                "address": "192.168.1.10:5607",
                "instanceRole": "PRIMARY",
                "mode": "R/W",
                "status": "ONLINE"
            },
            "192.168.1.20:5607": {
                "address": "192.168.1.20:5607",
                "instanceRole": "SECONDARY",
                "mode": "R/O",
                "replication": {
                    "applierStatus": "APPLIED_ALL",
                    "applierThreadState": "Slave has read all relay log; waiting for more updates",
                    "receiverStatus": "ON",
                    "receiverThreadState": "Waiting for master to send event",
                    "replicationLag": null
                },
                "status": "ONLINE"
            }
        },
        "type": "ASYNC"
    }
}

加入第二個節(jié)點之后,可以看到,再次使用rs.status來查看副本集的結(jié)構,可以看到Secondary節(jié)點已經(jīng)出現(xiàn)了,就是我們新加入的192.168.1.20:5607

當然我們可以分別使用下面的命令查看更詳細的輸出:

rs.status({extended:0})

rs.status({extended:1})

rs.status({extended:2})

不同的級別,顯示的信息有所不同,等級越高,信息約詳細。

這里不得不說一個小的bug,官方文檔建議寫法是:

ReplicaSet.status(extended=1)

原文如下:

The output of ReplicaSet.status(extended=1) is very similar to Cluster.status(extended=1), but the main difference is that the replication field is always available because InnoDB ReplicaSet relies on MySQL Replication all of the time, unlike InnoDB Cluster which uses it during incremental recovery. For more information on the fields, see Checking a cluster's Status with Cluster.status().

但是實際操作過程中,這種寫法會報錯,如下:

MySQL  192.168.1.10:5607 ssl  JS > sh.status(extended=1)
You are connected to a member of replicaset 'yeyz_test'.
ReplicaSet.status: Argument #1 is expected to be a map (ArgumentError)

不知道算不算一個bug。

5.搭建好副本集之后,查看primary節(jié)點的元信息庫表,并在primary寫入數(shù)據(jù),查看數(shù)據(jù)是否可以同步。

[(none)] 17:41:10>show databases;
+-------------------------------+
| Database                      |
+-------------------------------+
| information_schema            |
| mysql                         |
| mysql_innodb_cluster_metadata |
| performance_schema            |
| sys                           |
| zjmdmm                        |
+-------------------------------+
6 rows in set (0.01 sec)

[(none)] 17:41:29>use mysql_innodb_cluster_metadata
Database changed
[mysql_innodb_cluster_metadata] 17:45:12>show tables;
+-----------------------------------------+
| Tables_in_mysql_innodb_cluster_metadata |
+-----------------------------------------+
| async_cluster_members                   |
| async_cluster_views                     |
| clusters                                |
| instances                               |
| router_rest_accounts                    |
| routers                                 |
| schema_version                          |
| v2_ar_clusters                          |
| v2_ar_members                           |
| v2_clusters                             |
| v2_gr_clusters                          |
| v2_instances                            |
| v2_router_rest_accounts                 |
| v2_routers                              |
| v2_this_instance                        |
+-----------------------------------------+
15 rows in set (0.00 sec)

[mysql_innodb_cluster_metadata] 17:45:45>select * from routers;
Empty set (0.00 sec)

[(none)] 17:45:52>create database yeyazhou;
Query OK, 1 row affected (0.00 sec)

可以看到,Primary節(jié)點上有一個元信息數(shù)據(jù)庫mysql_innodb_cluster_metadata,里面保存了一些原信息,我們查看了router表,發(fā)現(xiàn)里面沒有數(shù)據(jù),原因是我們沒有配置MySQL Router。后面的文章中會寫到MySQL Router的配置過程。

    在Primary上創(chuàng)建一個數(shù)據(jù)庫yeyazhou,可以發(fā)現(xiàn),在從庫上也已經(jīng)出現(xiàn)了對應的DB,

192.168.1.20 [(none)] 17:41:41>show databases;
+-------------------------------+
| Database                      |
+-------------------------------+
| information_schema            |
| mysql                         |
| mysql_innodb_cluster_metadata |
| performance_schema            |
| sys                           |
| yeyazhou                      |
| zjmdmm                        |
+-------------------------------+
7 rows in set (0.00 sec)

說明副本集的復制關系無誤。

至此,整個MySQL Shell連接MySQL實例并創(chuàng)建ReplicatSet的過程搭建完畢。

下一篇文章講述MySQL Router的搭建過程,以及如何使用MySQL Router來訪問底層的數(shù)據(jù)庫。

以上就是MySQL Shell的介紹以及安裝的詳細內(nèi)容,更多關于MySQL Shell的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 監(jiān)控MySQL主從狀態(tài)的shell腳本
  • shell腳本一鍵安裝MySQL5.7.29的方法
  • mysql常用備份命令和shell備份腳本分享
  • shell腳本定時備份MySQL數(shù)據(jù)庫數(shù)據(jù)并保留指定時間
  • shell腳本自動化創(chuàng)建虛擬機的基本配置之tomcat--mysql--jdk--maven
  • shell腳本實現(xiàn)mysql定時備份、刪除、恢復功能
  • 一個Shell小腳本精準統(tǒng)計Mysql每張表的行數(shù)實現(xiàn)
  • 通過Shell腳本批量創(chuàng)建服務器上的MySQL數(shù)據(jù)庫賬號
  • 使用shell腳本來給mysql加索引的方法
  • 干掉一堆mysql數(shù)據(jù)庫,僅需這樣一個shell腳本(推薦)
  • 使用shell腳本每天對MySQL多個數(shù)據(jù)庫自動備份的講解

標簽:南充 迪慶 龍巖 西寧 麗水 無錫 自貢 徐州

巨人網(wǎng)絡通訊聲明:本文標題《MySQL Shell的介紹以及安裝》,本文關鍵詞  MySQL,amp,nbsp,Shell,的,介紹,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL Shell的介紹以及安裝》相關的同類信息!
  • 本頁收集關于MySQL Shell的介紹以及安裝的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    一区二区三区四区视频精品免费 | 91网上在线视频| 欧美丰满少妇xxxxx高潮对白| 综合色天天鬼久久鬼色| 国产不卡高清在线观看视频| 日韩三级伦理片妻子的秘密按摩| 一区二区三区成人| 91香蕉视频污在线| 国产精品免费免费| 国产成a人无v码亚洲福利| 日韩亚洲国产中文字幕欧美| 日韩在线卡一卡二| 91精品视频网| 日韩精品成人一区二区三区| 欧美日韩在线播放三区| 亚洲综合色丁香婷婷六月图片| 日本高清视频一区二区| 亚洲老司机在线| 欧美三级电影在线观看| 亚洲成a人片在线不卡一二三区| 国产高清一区日本| 国产午夜亚洲精品不卡| 高清国产一区二区| 国产精品久久一级| 91影院在线免费观看| 国产精品美女久久久久久2018| 成人av网址在线| 亚洲图片另类小说| 在线视频国产一区| 一区二区三区精品在线| 欧美图片一区二区三区| 爽好久久久欧美精品| 欧美日韩成人综合天天影院| 亚洲国产成人av| 制服丝袜日韩国产| 久久不见久久见免费视频1| 欧美大黄免费观看| 国产精品99久久久久久久vr| 中文字幕在线观看不卡| 91日韩精品一区| 亚洲激情校园春色| 欧美电影免费观看高清完整版在线 | 国产大陆亚洲精品国产| 91精品国产综合久久久久久 | 成人开心网精品视频| 亚洲人一二三区| 欧美日韩不卡一区| 亚洲国产裸拍裸体视频在线观看乱了| 日韩午夜在线观看| 97久久精品人人爽人人爽蜜臀| 丝袜美腿亚洲色图| 日本一区二区三级电影在线观看| av一区二区三区黑人| 一区二区三区免费看视频| 91精品国产免费| 东方aⅴ免费观看久久av| 一区二区三区**美女毛片| 制服丝袜激情欧洲亚洲| 成人黄页在线观看| 三级不卡在线观看| 国产欧美日韩麻豆91| 欧美在线一区二区| 久草中文综合在线| 怡红院av一区二区三区| 337p粉嫩大胆色噜噜噜噜亚洲| 91丨porny丨国产入口| 免费av网站大全久久| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲激情综合网| 欧美日韩mp4| eeuss国产一区二区三区| 日韩不卡一区二区| 一区二区视频在线| 国产日本欧洲亚洲| 精品少妇一区二区三区| 一本大道综合伊人精品热热| 韩国视频一区二区| 七七婷婷婷婷精品国产| 亚洲国产综合色| 最新高清无码专区| 久久精品亚洲一区二区三区浴池 | 欧美日韩在线三级| 97久久超碰国产精品| 风流少妇一区二区| 精品一区二区在线看| 香蕉成人伊视频在线观看| 亚洲猫色日本管| 国产精品国产自产拍高清av王其| 精品国产凹凸成av人网站| 日韩一级二级三级| 欧美电影影音先锋| 7777精品久久久大香线蕉| 日本高清不卡在线观看| 99re成人精品视频| 色婷婷久久久综合中文字幕| 成人av网在线| 成人免费黄色大片| 国产91在线观看| 岛国av在线一区| 国产成人av电影| 成人激情动漫在线观看| 丁香五精品蜜臀久久久久99网站| 国产在线麻豆精品观看| 国内精品免费在线观看| 精品午夜久久福利影院| 激情综合网激情| 国产精品综合二区| 国产精品18久久久久久久久 | 亚洲大片在线观看| 亚洲一二三四在线| 亚洲二区在线观看| 污片在线观看一区二区| 日本成人在线电影网| 精品无人码麻豆乱码1区2区 | 欧美亚洲图片小说| 欧美欧美欧美欧美首页| 91精品国产色综合久久ai换脸 | www.日韩大片| 色综合久久中文综合久久97| 在线观看一区日韩| 欧美日韩黄色一区二区| 91精品免费在线观看| 日韩免费高清av| 国产亚洲精品资源在线26u| 国产日韩欧美电影| 亚洲视频一二区| 日韩精品久久理论片| 国产乱人伦偷精品视频免下载 | 国产酒店精品激情| 北条麻妃国产九九精品视频| 欧美午夜一区二区| 欧美va亚洲va在线观看蝴蝶网| 欧美激情中文字幕一区二区| 成人欧美一区二区三区小说| 五月激情综合色| 成人综合在线网站| 欧美乱妇20p| 中文字幕精品—区二区四季| 亚洲国产精品一区二区久久 | 国产亚洲精品资源在线26u| 亚洲视频一区在线| 人人超碰91尤物精品国产| 国产999精品久久| 欧美色精品在线视频| 国产欧美一区二区精品仙草咪| 夜夜爽夜夜爽精品视频| 国产精品自产自拍| 欧美色老头old∨ideo| 久久久不卡网国产精品二区| 亚洲精品国产视频| 精品一区二区三区免费视频| 91麻豆文化传媒在线观看| 精品日本一线二线三线不卡| 一区二区在线看| 国产精品一区二区三区四区| 一本大道久久a久久综合| 久久亚洲捆绑美女| 午夜伦欧美伦电影理论片| 91尤物视频在线观看| 欧美精品一区二区三区高清aⅴ | 高清在线不卡av| 欧美巨大另类极品videosbest| 中文在线一区二区| 日韩高清欧美激情| 91久久精品网| 国产精品视频线看| 国产一区在线精品| 91精品国产综合久久婷婷香蕉| 亚洲免费在线观看| 成人av网在线| 国产视频一区不卡| 久久福利视频一区二区| 欧美色图一区二区三区| 中文字幕在线不卡| 国产精品91一区二区| 日韩视频一区二区三区在线播放| 亚洲综合视频网| 色琪琪一区二区三区亚洲区| 国产精品另类一区| 国产成人免费在线| 欧美成人免费网站| 日韩avvvv在线播放| 欧美日韩国产片| 亚洲午夜在线观看视频在线| 日本久久电影网| 亚洲日本va在线观看| av一区二区不卡| 中文字幕综合网| 色综合天天综合网天天狠天天| 国产精品久久久久久福利一牛影视 | 成人av免费在线观看| 日韩欧美国产小视频| 亚洲国产美女搞黄色| 欧美三级乱人伦电影| 亚洲国产欧美日韩另类综合| 欧美在线小视频| 亚洲国产日韩综合久久精品| 91麻豆高清视频| 亚洲一区二区三区美女| 欧美午夜精品电影|