MySQL以及MyCat的安裝和使用

MySQL的安裝(rpm格式/需要聯(lián)網(wǎng))

安裝環(huán)境

  • VMware Linux CentOS-6.5鹃祖。

  • 上傳工具FileZilla Client

第一步:查看mysql是否安裝。

rpm -qa|grep mysql

第二步:如果mysql的版本不是想要的版本伤锚。需要把mysql卸載枯芬。

yum remove mysql mysql-server mysql-libs mysql-common

rm -rf /var/lib/mysql

rm /etc/my.cnf

第三步:安裝mysql掘殴。需要使用yum命令安裝匕荸。在安裝mysql之前需要安裝mysql的下載源递瑰。需要從oracle的官方網(wǎng)站下載跳座。

  • 1 下載mysql的源包。

官網(wǎng)地址:https://dev.mysql.com/downloads/file/?id=450542
便捷下載:https://download.csdn.net/download/jjxbest/8395685

2)安裝mysql下載源:

yum localinstall mysql-community-release-el6-5.noarch.rpm

3)在線安裝mysql:

yum install mysql-community-server

第四步:?jiǎn)?dòng)mysql

service mysqld start

第五步:需要給root用戶設(shè)置密碼泣矛。

/usr/bin/mysqladmin -u root password 'new-password'  // 為root賬號(hào)設(shè)置密碼

注意:'new-password' 需要替換成實(shí)際的密碼。
第六步:遠(yuǎn)程連接授權(quán)禾蚕。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

注意:'myuser'您朽、'mypassword' 需要替換成實(shí)際的用戶名和密碼。

MyCat

如今隨著互聯(lián)網(wǎng)的發(fā)展换淆,數(shù)據(jù)的量級(jí)也是撐指數(shù)的增長(zhǎng)哗总,從GB到TB到PB。對(duì)數(shù)據(jù)的各種操作也是愈加的困難倍试,傳統(tǒng)的關(guān)系性數(shù)據(jù)庫(kù)已經(jīng)無法滿足快速查詢與插入數(shù)據(jù)的需求讯屈。這個(gè)時(shí)候NoSQL的出現(xiàn)暫時(shí)解決了這一危機(jī)。它通過降低數(shù)據(jù)的安全性县习,減少對(duì)事務(wù)的支持涮母,減少對(duì)復(fù)雜查詢的支持,來獲取性能上的提升躁愿。但是叛本,在有些場(chǎng)合NoSQL一些折衷是無法滿足使用場(chǎng)景的,就比如有些使用場(chǎng)景是絕對(duì)要有事務(wù)與安全指標(biāo)的彤钟。這個(gè)時(shí)候NoSQL肯定是無法滿足的来候,所以還是需要使用關(guān)系性數(shù)據(jù)庫(kù)。如果使用關(guān)系型數(shù)據(jù)庫(kù)解決海量存儲(chǔ)的問題呢逸雹?此時(shí)就需要做數(shù)據(jù)庫(kù)集群营搅,為了提高查詢性能將一個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)分散到不同的數(shù)據(jù)庫(kù)中存儲(chǔ)云挟。

1丶什么是數(shù)據(jù)庫(kù)分片

簡(jiǎn)單來說,就是指通過某種特定的條件转质,將我們存放在同一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)分散存放到多個(gè)數(shù)據(jù)庫(kù)(主機(jī))上面园欣,以達(dá)到分散單臺(tái)設(shè)備負(fù)載的效果。

數(shù)據(jù)的切分(Sharding)根據(jù)其切分規(guī)則的類型峭拘,可以分為兩種切分模式俊庇。

  • (1)一種是按照不同的表(或者Schema)來切分到不同的數(shù)據(jù)庫(kù)(主機(jī))之上,這種切可以稱之為數(shù)據(jù)的垂直(縱向)切分
圖片.png
  • (2)另外一種則是根據(jù)表中的數(shù)據(jù)的邏輯關(guān)系鸡挠,將同一個(gè)表中的數(shù)據(jù)按照某種條件拆分到多臺(tái)數(shù)據(jù)庫(kù)(主機(jī))上面辉饱,這種切分稱之為數(shù)據(jù)的水平(橫向)切分。
圖片.png

2丶使用MyCat實(shí)現(xiàn)數(shù)據(jù)庫(kù)分片

Mycat 背后是阿里曾經(jīng)開源的知名產(chǎn)品——Cobar拣展。Cobar 的核心功能和優(yōu)勢(shì)是 MySQL 數(shù)據(jù)庫(kù)分片彭沼,此產(chǎn)品曾經(jīng)廣為流傳,據(jù)說最早的發(fā)起者對(duì) Mysql 很精通备埃,后來從阿里跳槽了姓惑,阿里隨后開源的 Cobar,并維持到 2013 年年初按脚。Cobar 的思路和實(shí)現(xiàn)路徑的確不錯(cuò)于毙。基于 Java 開發(fā)的辅搬,實(shí)現(xiàn)了 MySQL 公開的二進(jìn)制傳輸協(xié)議唯沮,巧妙地將自己偽裝成一個(gè) MySQL Server,目前市面上絕大多數(shù) MySQL 客戶端工具和應(yīng)用都能兼容堪遂。比自己實(shí)現(xiàn)一個(gè)新的數(shù)據(jù)庫(kù)協(xié)議要明智的多介蛉,因?yàn)樯鷳B(tài)環(huán)境在哪里擺著。

Mycat 是基于 cobar 演變而來溶褪,對(duì) cobar 的代碼進(jìn)行了徹底的重構(gòu)币旧,使用 NIO 重構(gòu)了網(wǎng)絡(luò)模塊,并且優(yōu)化了 Buffer 內(nèi)核猿妈,增強(qiáng)了聚合吹菱,Join 等基本特性,同時(shí)兼容絕大多數(shù)數(shù)據(jù)庫(kù)成為通用的數(shù)據(jù)庫(kù)中間件于游。
簡(jiǎn)單的說毁葱,MyCAT就是:一個(gè)新穎的數(shù)據(jù)庫(kù)中間件產(chǎn)品支持mysql集群,或者mariadb cluster贰剥,提供高可用性數(shù)據(jù)分片集群倾剿。你可以像使用mysql一樣使用mycat。對(duì)于開發(fā)人員來說根本感覺不到mycat的存在。

圖片.png

3丶Mycat的分片策略

圖片.png
邏輯庫(kù)(schema)

通常對(duì)實(shí)際應(yīng)用來說前痘,業(yè)務(wù)開發(fā)人員并不需要知道中間件的存在凛捏,只需要知道數(shù)據(jù)庫(kù)的概念,所以數(shù)據(jù)庫(kù)中間件可以被看做是一個(gè)或多個(gè)數(shù)據(jù)庫(kù)集群構(gòu)成的邏輯庫(kù)芹缔。

邏輯表(table)

既然有邏輯庫(kù)坯癣,那么就會(huì)有邏輯表,分布式數(shù)據(jù)庫(kù)中最欠,對(duì)應(yīng)用來說示罗,讀寫數(shù)據(jù)的表就是邏輯表。邏輯表芝硬,可以是數(shù)據(jù)切分后蚜点,分布在一個(gè)或多個(gè)分片庫(kù)中,也可以不做數(shù)據(jù)切分拌阴,不分片绍绘,只有一個(gè)表構(gòu)成。
分片表:是指那些原有的很大數(shù)據(jù)的表迟赃,需要切分到多個(gè)數(shù)據(jù)庫(kù)的表陪拘,這樣,每個(gè)分片都有一部分?jǐn)?shù)據(jù)纤壁,所有分片構(gòu)成了完整的數(shù)據(jù)左刽。 總而言之就是需要進(jìn)行分片的表。
非分片表:一個(gè)數(shù)據(jù)庫(kù)中并不是所有的表都很大酌媒,某些表是可以不用進(jìn)行切分的悠反,非分片是相對(duì)分片表來說的,就是那些不需要進(jìn)行數(shù)據(jù)切分的表馍佑。

分片節(jié)點(diǎn)(dataNode)

數(shù)據(jù)切分后,一個(gè)大表被分到不同的分片數(shù)據(jù)庫(kù)上面梨水,每個(gè)表分片所在的數(shù)據(jù)庫(kù)就是分片節(jié)點(diǎn)(dataNode)拭荤。

節(jié)點(diǎn)主機(jī)(dataHost)

數(shù)據(jù)切分后,每個(gè)分片節(jié)點(diǎn)(dataNode)不一定都會(huì)獨(dú)占一臺(tái)機(jī)器疫诽,同一機(jī)器上面可以有多個(gè)分片數(shù)據(jù)庫(kù)舅世,這樣一個(gè)或多個(gè)分片節(jié)點(diǎn)(dataNode)所在的機(jī)器就是節(jié)點(diǎn)主機(jī)(dataHost),為了規(guī)避單節(jié)點(diǎn)主機(jī)并發(fā)數(shù)限制,盡量將讀寫壓力高的分片節(jié)點(diǎn)(dataNode)均衡的放在不同的節(jié)點(diǎn)主機(jī)(dataHost)奇徒。

分片規(guī)則(rule)

數(shù)據(jù)切分雏亚,一個(gè)大表被分成若干個(gè)分片表,就需要一定的規(guī)則摩钙,這樣按照某種業(yè)務(wù)規(guī)則把數(shù)據(jù)分到某個(gè)分片的規(guī)則就是分片規(guī)則罢低,數(shù)據(jù)切分選擇合適的分片規(guī)則非常重要,將極大的避免后續(xù)數(shù)據(jù)處理的難度。

Mycat的下載及安裝

安裝環(huán)境

  • 1网持、jdk:要求jdk必須是1.7及以上版本

  • 2宜岛、Mysql:推薦mysql是5.5以上版本

  • 3、Mycat: Mycat-server-xxxx-linux.tar.gz安裝包

Mycat的官方網(wǎng)站:http://www.mycat.org.cn/

下載地址:https://github.com/MyCATApache/Mycat-download

安裝

第一步:下載Mycat-server-xxxx-linux.tar.gz
第二步:將壓縮包解壓縮功舀。建議將mycat放到/usr/local/mycat目錄下萍倡。
第三步:進(jìn)入mycat目錄,
啟動(dòng)mycat

./mycat start

停止:

./mycat stop

mycat 支持的命令{ console | start | stop | restart | status | dump }
Mycat的默認(rèn)端口號(hào)為:8066

MyCat配置介紹

schema.xml

Schema.xml作為MyCat中重要的配置文件之一辟汰,管理著MyCat的邏輯庫(kù)列敲、表、分片規(guī)則帖汞、DataNode以及DataSource戴而。弄懂這些配置,是正確使用MyCat的前提涨冀。這里就一層層對(duì)該文件進(jìn)行解析填硕。

  • schema 標(biāo)簽用于定義MyCat實(shí)例中的邏輯庫(kù)
  • Table 標(biāo)簽定義了MyCat中的邏輯表
  • dataNode 標(biāo)簽定義了MyCat中的數(shù)據(jù)節(jié)點(diǎn),也就是我們通常說所的數(shù)據(jù)分片鹿鳖。
  • dataHost 標(biāo)簽在mycat邏輯庫(kù)中也是作為最底層的標(biāo)簽存在扁眯,直接定義了具體的數(shù)據(jù)庫(kù)實(shí)例、讀寫分離配置和心跳語(yǔ)句翅帜。
Server.xml

server.xml幾乎保存了所有mycat需要的系統(tǒng)配置信息姻檀。最常用的是在此配置用戶名、密碼及權(quán)限涝滴。

<user name="user">
    <property name="password">user</property>
    <property name="schemas">TestDB</property>
    <property name="readOnly">false</property>
</user>
rule.xml

rule.xml里面就定義了我們對(duì)表進(jìn)行拆分所涉及到的規(guī)則定義绣版。我們可以靈活的對(duì)表使用不同的分片算法,或者對(duì)表使用相同的算法但具體的參數(shù)不同歼疮。這個(gè)文件里面主要有tableRule和function這兩個(gè)標(biāo)簽杂抽。在具體使用過程中可以按照需求添加tableRule
和function。
此配置文件可以不用修改韩脏,使用默認(rèn)即可缩麸。

MyCat讀寫分離

數(shù)據(jù)庫(kù)讀寫分離對(duì)于大型系統(tǒng)或者訪問量很高的互聯(lián)網(wǎng)應(yīng)用來說,是必不可少的一個(gè)重要功能赡矢。對(duì)于MySQL來說杭朱,標(biāo)準(zhǔn)的讀寫分離是主從模式,一個(gè)寫節(jié)點(diǎn)Master后面跟著多個(gè)讀節(jié)點(diǎn)吹散,讀節(jié)點(diǎn)的數(shù)量取決于系統(tǒng)的壓力弧械,通常是1-3個(gè)讀節(jié)點(diǎn)的配置。

圖片.png

Mycat讀寫分離和自動(dòng)切換機(jī)制空民,需要mysql的主從復(fù)制機(jī)制配合刃唐。

MySQL的主從復(fù)制
圖片.png

主從配置需要注意的地方

  • 1、主DB server和從DB server數(shù)據(jù)庫(kù)的版本一致
  • 2、主DB server和從DB server數(shù)據(jù)庫(kù)數(shù)據(jù)名稱一致
  • 3唁桩、主DB server開啟二進(jìn)制日志,主DB server和從DB server的server_id都必須唯一
MySQL主服務(wù)器配置

第一步:修改my.conf文件:
在[mysqld]段下添加:

binlog-do-db=db1
binlog-ignore-db=mysql

#啟用二進(jìn)制日志
log-bin=mysql-bin

#主服務(wù)器唯一ID闭树,一般取IP最后一段
server-id=221

第二步:重啟mysql服務(wù)

service mysqld restart

第三步:建立帳戶并授權(quán)slave

mysql>GRANT FILE ON *.* TO 'user1'@'%' IDENTIFIED BY '123456';
mysql>GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to 'user1'@'%' identified by '123456'; 

一般不用root帳號(hào),“%”表示所有客戶端都可能連荒澡,只要帳號(hào)报辱,密碼正確,此處可用具體客戶端IP代替单山,如192.168.145.226碍现,加強(qiáng)安全。

刷新權(quán)限

mysql> FLUSH PRIVILEGES;

查看mysql現(xiàn)在有哪些用戶

mysql>select user,host from mysql.user;

第四步:查詢master的狀態(tài)

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      120 | db1          | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set
MySQL從服務(wù)器配置

第一步:修改my.conf文件

[mysqld]
#從服務(wù)器唯一ID米奸,一般取IP最后一段
server-id=222

第二步:配置從服務(wù)器

mysql>change master to master_host='192.168.25.221',master_port=3306,master_user='user1',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120

注意語(yǔ)句中間不要斷開昼接,master_port為mysql服務(wù)器端口號(hào)(無引號(hào)),master_user為執(zhí)行同步操作的數(shù)據(jù)庫(kù)賬戶悴晰,“120”無單引號(hào)(此處的120就是show master status 中看到的position的值慢睡,這里的mysql-bin.000001就是file對(duì)應(yīng)的值)。

第二步:?jiǎn)?dòng)從服務(wù)器復(fù)制功能

Mysql>start slave; 

第三步:檢查從服務(wù)器復(fù)制功能狀態(tài):

mysql> show slave status
Slave_IO_Running: Yes //此狀態(tài)必須YES

Slave_SQL_Running: Yes //此狀態(tài)必須YES

注:Slave_IO及Slave_SQL進(jìn)程必須正常運(yùn)行铡溪,即YES狀態(tài)漂辐,否則都是錯(cuò)誤的狀態(tài)(如:其中一個(gè)NO均屬錯(cuò)誤)。

MyCat配置
<dataNode name="dn1" dataHost="localhost1" database="db1" />
    <dataNode name="dn2" dataHost="localhost1" database="db2" />
    <dataNode name="dn3" dataHost="localhost1" database="db3" />
    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
        writeType="0" dbType="mysql" dbDriver="native" switchType="2"  slaveThreshold="100">
        <heartbeat>show slave status</heartbeat>
        <writeHost host="hostM" url="192.168.25.221:3306" user="root"
            password="root">
            <readHost host="hostS" url="192.168.25.222:3306" user="root"
            password="root" />
        </writeHost>
    </dataHost>
配置說明

1丶讀寫分離配置:
設(shè)置 balance="1"與writeType="0"

Balance參數(shù)設(shè)置:

    1. balance=“0”, 所有讀操作都發(fā)送到當(dāng)前可用的writeHost上棕硫。
    1. balance=“1”髓涯,所有讀操作都隨機(jī)的發(fā)送到readHost。
    1. balance=“2”哈扮,所有讀操作都隨機(jī)的在writeHost纬纪、readhost上分發(fā)

WriteType參數(shù)設(shè)置:

    1. writeType=“0”, 所有寫操作都發(fā)送到可用的writeHost上。
    1. writeType=“1”滑肉,所有寫操作都隨機(jī)的發(fā)送到readHost包各。
    1. writeType=“2”,所有寫操作都隨機(jī)的在writeHost靶庙、readhost分上發(fā)髓棋。

“readHost是從屬于writeHost的,即意味著它從那個(gè)writeHost獲取同步數(shù)據(jù)惶洲,因此,當(dāng)它所屬的writeHost宕機(jī)了膳犹,則它也不會(huì)再參與到讀寫分離中來恬吕,即“不工作了”,這是因?yàn)榇藭r(shí)须床,它的數(shù)據(jù)已經(jīng)“不可靠”了铐料。基于這個(gè)考慮,目前mycat 1.3和1.4版本中钠惩,若想支持MySQL一主一從的標(biāo)準(zhǔn)配置柒凉,并且在主節(jié)點(diǎn)宕機(jī)的情況下,從節(jié)點(diǎn)還能讀取數(shù)據(jù)篓跛,則需要在Mycat里配置為兩個(gè)writeHost并設(shè)置banlance=1膝捞。”

2丶雙主切換策略配置:

設(shè)置 switchType="2" 與slaveThreshold="100"

switchType 目前有三種選擇:

  • -1:表示不自動(dòng)切換
  • 1 :默認(rèn)值愧沟,自動(dòng)切換
  • 2 :基于MySQL主從同步的狀態(tài)決定是否切換

“Mycat心跳檢查語(yǔ)句配置為 show slave status 蔬咬,dataHost 上定義兩個(gè)新屬性: switchType="2" 與slaveThreshold="100",此時(shí)意味著開啟MySQL主從復(fù)制狀態(tài)綁定的讀寫分離與切換機(jī)制沐寺。Mycat心跳機(jī)制通過檢測(cè) show slave status 中的 "Seconds_Behind_Master", "Slave_IO_Running", "Slave_SQL_Running" 三個(gè)字段來確定當(dāng)前主從同步的狀態(tài)以及Seconds_Behind_Master主從復(fù)制時(shí)延林艘。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市混坞,隨后出現(xiàn)的幾起案子狐援,更是在濱河造成了極大的恐慌,老刑警劉巖究孕,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啥酱,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蚊俺,警方通過查閱死者的電腦和手機(jī)懈涛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泳猬,“玉大人批钠,你說我怎么就攤上這事〉梅猓” “怎么了埋心?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)忙上。 經(jīng)常有香客問我拷呆,道長(zhǎng),這世上最難降的妖魔是什么疫粥? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任茬斧,我火速辦了婚禮,結(jié)果婚禮上梗逮,老公的妹妹穿的比我還像新娘项秉。我一直安慰自己,他們只是感情好慷彤,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布娄蔼。 她就那樣靜靜地躺著怖喻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪岁诉。 梳的紋絲不亂的頭發(fā)上锚沸,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音涕癣,去河邊找鬼哗蜈。 笑死,一個(gè)胖子當(dāng)著我的面吹牛属划,可吹牛的內(nèi)容都是我干的恬叹。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼同眯,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼绽昼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起须蜗,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤硅确,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后明肮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菱农,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年柿估,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了循未。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秫舌,死狀恐怖的妖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情足陨,我是刑警寧澤嫂粟,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站墨缘,受9級(jí)特大地震影響星虹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜镊讼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一宽涌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蝶棋,春花似錦卸亮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至献酗,卻和暖如春寝受,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背罕偎。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工很澄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人颜及。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓甩苛,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親俏站。 傳聞我的和親對(duì)象是個(gè)殘疾皇子讯蒲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容