最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL Group Replication(MGR)集群部署實(shí)現(xiàn)自動(dòng)故障切換問(wèn)題記錄

 更新時(shí)間:2026年01月14日 09:32:18   作者:tyatyatya  
文章詳細(xì)介紹了MGR的配置步驟、環(huán)境規(guī)劃、自動(dòng)故障切換驗(yàn)證以及生產(chǎn)環(huán)境優(yōu)化和常見(jiàn)問(wèn)題解決,感興趣的朋友跟隨小編一起看看吧

傳統(tǒng)MySQL主從復(fù)制需要手動(dòng)切換故障節(jié)點(diǎn),無(wú)法滿足高可用場(chǎng)景下“秒級(jí)自動(dòng)恢復(fù)”的需求。MySQL Group Replication(MGR,組復(fù)制)基于Paxos協(xié)議實(shí)現(xiàn)多節(jié)點(diǎn)數(shù)據(jù)同步與自動(dòng)故障切換,無(wú)需依賴(lài)Keepalived、MHA等第三方工具,是MySQL官方推薦的高可用解決方案。

一、MGR核心認(rèn)知

1.1 MGR對(duì)比傳統(tǒng)主從的優(yōu)勢(shì)

特性傳統(tǒng)主從復(fù)制MySQL Group Replication
故障切換手動(dòng)切換自動(dòng)選舉新主節(jié)點(diǎn),秒級(jí)恢復(fù)
數(shù)據(jù)一致性異步/半同步,易不一致強(qiáng)一致性(基于Paxos協(xié)議)
集群管理依賴(lài)第三方工具原生支持集群管理,無(wú)需額外組件
節(jié)點(diǎn)角色主從固定單主/多主模式,角色自動(dòng)切換
腦裂風(fēng)險(xiǎn)低(奇數(shù)節(jié)點(diǎn)仲裁)

1.2 MGR核心原理

MGR集群由至少3個(gè)節(jié)點(diǎn)組成(奇數(shù)節(jié)點(diǎn),保證投票仲裁),單主模式下:

  1. 集群選舉出1個(gè)主節(jié)點(diǎn)(Primary) 處理所有寫(xiě)入操作,其余為從節(jié)點(diǎn)(Secondary) 只讀;
  2. 主節(jié)點(diǎn)將事務(wù)同步到集群,所有節(jié)點(diǎn)通過(guò)組通信協(xié)議(XCom)達(dá)成共識(shí)后,才提交事務(wù),保證數(shù)據(jù)一致性;
  3. 主節(jié)點(diǎn)故障時(shí),集群自動(dòng)檢測(cè)并通過(guò)投票選舉新主節(jié)點(diǎn),從節(jié)點(diǎn)無(wú)縫接管寫(xiě)入,無(wú)需人工干預(yù)。

1.3 環(huán)境規(guī)劃(單主模式)

節(jié)點(diǎn)角色服務(wù)器IPMySQL版本核心配置端口說(shuō)明
MGR節(jié)點(diǎn)1(初始主)192.168.1.308.0.364核8G,500G硬盤(pán)3306(MySQL服務(wù))、33061(MGR通信)
MGR節(jié)點(diǎn)2192.168.1.318.0.364核8G,500G硬盤(pán)3306、33061
MGR節(jié)點(diǎn)3192.168.1.328.0.364核8G,500G硬盤(pán)3306、33061

1.4 前置準(zhǔn)備

  1. 所有節(jié)點(diǎn)操作系統(tǒng):CentOS 7.x(關(guān)閉SELinux、防火墻開(kāi)放3306/33061端口);
  2. 同步系統(tǒng)時(shí)間:ntpdate ntp.aliyun.com
  3. 禁用AppArmor/SELinux:setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config;
  4. 開(kāi)放端口:
    firewall-cmd --add-port=3306/tcp --permanent
    firewall-cmd --add-port=33061/tcp --permanent
    firewall-cmd --reload
    

二、第一步:所有節(jié)點(diǎn)安裝并配置MySQL 8.0

MGR對(duì)MySQL版本要求嚴(yán)格(推薦8.0.20+),以下步驟需在所有3個(gè)節(jié)點(diǎn)執(zhí)行。

2.1 安裝MySQL 8.0

# 1. 安裝MySQL YUM源
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
rpm -ivh mysql80-community-release-el7-7.noarch.rpm
# 2. 安裝MySQL服務(wù)器(忽略GPG檢查,避免版本兼容問(wèn)題)
yum install -y mysql-community-server --nogpgcheck
# 3. 啟動(dòng)MySQL并設(shè)置開(kāi)機(jī)自啟
systemctl start mysqld
systemctl enable mysqld
# 4. 獲取初始密碼
initial_pass=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}')
echo "初始密碼:$initial_pass"

2.2 初始化MySQL(修改密碼、配置權(quán)限)

# 1. 登錄MySQL并修改root密碼(需符合復(fù)雜度:大小寫(xiě)+數(shù)字+特殊字符)
mysql -u root -p"$initial_pass" -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySQL@123456'; FLUSH PRIVILEGES;"
# 2. 遠(yuǎn)程訪問(wèn)授權(quán)(生產(chǎn)環(huán)境建議限制IP,此處為測(cè)試放開(kāi))
mysql -u root -p"MySQL@123456" -e "CREATE USER 'root'@'%' IDENTIFIED BY 'MySQL@123456'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;"

2.3 配置MGR核心參數(shù)(修改my.cnf)

編輯/etc/my.cnf,替換原有配置為以下內(nèi)容(注意替換server-id和group_replication_local_address為節(jié)點(diǎn)對(duì)應(yīng)值):

節(jié)點(diǎn)1(192.168.1.30)my.cnf配置

[mysqld]
# 基礎(chǔ)配置
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
lower_case_table_names=1
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# MGR核心配置
server-id=30  # 每個(gè)節(jié)點(diǎn)唯一,建議用IP最后一段
gtid_mode=ON  # 開(kāi)啟GTID,MGR必需
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
binlog_format=ROW
transaction_write_set_extraction=XXHASH64  # MGR用于檢測(cè)沖突的哈希算法
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"  # 固定UUID,所有節(jié)點(diǎn)一致
loose-group_replication_start_on_boot=OFF  # 不隨MySQL啟動(dòng)自動(dòng)啟動(dòng)MGR
loose-group_replication_local_address="192.168.1.30:33061"  # 當(dāng)前節(jié)點(diǎn)MGR通信地址
loose-group_replication_group_seeds="192.168.1.30:33061,192.168.1.31:33061,192.168.1.32:33061"  # 所有節(jié)點(diǎn)通信地址
loose-group_replication_bootstrap_group=OFF  # 僅初始化集群時(shí)設(shè)為ON
loose-group_replication_single_primary_mode=ON  # 單主模式(核心:自動(dòng)故障切換依賴(lài)此模式)
loose-group_replication_enforce_update_everywhere_checks=OFF  # 單主模式設(shè)為OFF
loose-group_replication_auto_increment_increment=7  # 避免主鍵沖突

節(jié)點(diǎn)2(192.168.1.31)my.cnf配置

僅修改以下2處,其余與節(jié)點(diǎn)1一致:

server-id=31
loose-group_replication_local_address="192.168.1.31:33061"

節(jié)點(diǎn)3(192.168.1.32)my.cnf配置

僅修改以下2處:

server-id=32
loose-group_replication_local_address="192.168.1.32:33061"

2.4 重啟MySQL并驗(yàn)證配置

# 重啟MySQL
systemctl restart mysqld
# 驗(yàn)證GTID是否開(kāi)啟(輸出ON即正常)
mysql -u root -p"MySQL@123456" -e "SHOW VARIABLES LIKE 'gtid_mode';"

三、第二步:搭建MGR集群(單主模式)

3.1 步驟1:在所有節(jié)點(diǎn)創(chuàng)建MGR專(zhuān)用用戶

MGR需要專(zhuān)用用戶用于節(jié)點(diǎn)間通信,登錄每個(gè)節(jié)點(diǎn)執(zhí)行:

mysql -u root -p"MySQL@123456" << EOF
# 創(chuàng)建MGR通信用戶
CREATE USER 'mgr_repl'@'%' IDENTIFIED BY 'MGR@123456';
# 授予MGR所需權(quán)限
GRANT REPLICATION SLAVE ON *.* TO 'mgr_repl'@'%';
GRANT GROUP_REPLICATION_ADMIN ON *.* TO 'mgr_repl'@'%';
FLUSH PRIVILEGES;
# 配置MGR插件使用該用戶
CHANGE MASTER TO MASTER_USER='mgr_repl', MASTER_PASSWORD='MGR@123456' FOR CHANNEL 'group_replication_recovery';
EOF

3.2 步驟2:初始化MGR集群(僅節(jié)點(diǎn)1執(zhí)行)

節(jié)點(diǎn)1作為初始主節(jié)點(diǎn),負(fù)責(zé)引導(dǎo)集群創(chuàng)建:

mysql -u root -p"MySQL@123456" << EOF
# 加載MGR插件(8.0+默認(rèn)內(nèi)置,無(wú)需手動(dòng)安裝)
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
# 啟動(dòng)集群引導(dǎo)(僅第一次執(zhí)行)
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;
# 驗(yàn)證集群狀態(tài)(輸出ON即正常)
SELECT * FROM performance_schema.replication_group_members;
EOF

執(zhí)行后查看replication_group_members,節(jié)點(diǎn)1狀態(tài)應(yīng)為ONLINE,角色為PRIMARY。

3.3 步驟3:節(jié)點(diǎn)2、3加入集群

節(jié)點(diǎn)2執(zhí)行:

mysql -u root -p"MySQL@123456" << EOF
# 加載MGR插件
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
# 加入集群
START GROUP_REPLICATION;
# 驗(yàn)證節(jié)點(diǎn)狀態(tài)
SELECT * FROM performance_schema.replication_group_members;
EOF

節(jié)點(diǎn)3執(zhí)行:

與節(jié)點(diǎn)2命令完全一致,執(zhí)行后驗(yàn)證節(jié)點(diǎn)狀態(tài)。

3.4 驗(yàn)證集群搭建成功

在任意節(jié)點(diǎn)執(zhí)行以下命令,查看集群成員狀態(tài):

mysql -u root -p"MySQL@123456" -e "SELECT MEMBER_HOST, MEMBER_ROLE, MEMBER_STATE FROM performance_schema.replication_group_members;"

正常輸出示例

MEMBER_HOSTMEMBER_ROLEMEMBER_STATE
192.168.1.30PRIMARYONLINE
192.168.1.31SECONDARYONLINE
192.168.1.32SECONDARYONLINE
3個(gè)節(jié)點(diǎn)均為ONLINE,且節(jié)點(diǎn)1為PRIMARY,說(shuō)明集群搭建成功。

四、第三步:驗(yàn)證自動(dòng)故障切換

4.1 前置測(cè)試:主節(jié)點(diǎn)寫(xiě)入數(shù)據(jù)

在節(jié)點(diǎn)1(主節(jié)點(diǎn))插入測(cè)試數(shù)據(jù),驗(yàn)證從節(jié)點(diǎn)同步:

# 節(jié)點(diǎn)1執(zhí)行:創(chuàng)建測(cè)試庫(kù)和表
mysql -u root -p"MySQL@123456" << EOF
CREATE DATABASE IF NOT EXISTS mgr_test;
USE mgr_test;
CREATE TABLE user (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50));
INSERT INTO user (name) VALUES ('MGR測(cè)試用戶1'), ('MGR測(cè)試用戶2');
EOF
# 節(jié)點(diǎn)2/3執(zhí)行:查詢(xún)數(shù)據(jù)(應(yīng)同步成功)
mysql -u root -p"MySQL@123456" -e "SELECT * FROM mgr_test.user;"

4.2 模擬主節(jié)點(diǎn)故障(停止節(jié)點(diǎn)1的MySQL)

# 節(jié)點(diǎn)1執(zhí)行:停止MySQL服務(wù),模擬故障
systemctl stop mysqld

4.3 驗(yàn)證自動(dòng)選舉新主節(jié)點(diǎn)

等待5~10秒(MGR故障檢測(cè)默認(rèn)超時(shí)約5秒),在節(jié)點(diǎn)2執(zhí)行以下命令:

mysql -u root -p"MySQL@123456" -e "SELECT MEMBER_HOST, MEMBER_ROLE, MEMBER_STATE FROM performance_schema.replication_group_members;"

預(yù)期輸出(節(jié)點(diǎn)2或3被選舉為新主):

MEMBER_HOSTMEMBER_ROLEMEMBER_STATE
192.168.1.30UNREACHABLEOFFLINE
192.168.1.31PRIMARYONLINE
192.168.1.32SECONDARYONLINE

4.4 驗(yàn)證新主節(jié)點(diǎn)寫(xiě)入功能

在新主節(jié)點(diǎn)(如節(jié)點(diǎn)2)插入數(shù)據(jù),驗(yàn)證寫(xiě)入正常:

# 節(jié)點(diǎn)2執(zhí)行:插入數(shù)據(jù)
mysql -u root -p"MySQL@123456" << EOF
USE mgr_test;
INSERT INTO user (name) VALUES ('故障切換后寫(xiě)入');
EOF
# 節(jié)點(diǎn)3執(zhí)行:查詢(xún)數(shù)據(jù)(應(yīng)同步新數(shù)據(jù))
mysql -u root -p"MySQL@123456" -e "SELECT * FROM mgr_test.user;"

4.5 故障節(jié)點(diǎn)恢復(fù)后重新加入集群

節(jié)點(diǎn)1修復(fù)后,重啟MySQL并重新加入集群:

# 節(jié)點(diǎn)1執(zhí)行:重啟MySQL
systemctl start mysqld
# 重新加入集群
mysql -u root -p"MySQL@123456" << EOF
START GROUP_REPLICATION;
# 驗(yàn)證狀態(tài)(此時(shí)節(jié)點(diǎn)1為SECONDARY)
SELECT MEMBER_HOST, MEMBER_ROLE FROM performance_schema.replication_group_members;
EOF

五、MGR集群生產(chǎn)環(huán)境優(yōu)化

5.1 配置自動(dòng)重啟MGR

編輯/etc/my.cnf,添加以下配置(所有節(jié)點(diǎn)),確保MySQL重啟后MGR自動(dòng)啟動(dòng):

loose-group_replication_start_on_boot=ON

5.2 監(jiān)控集群狀態(tài)

5.2.1 核心監(jiān)控SQL

# 1. 集群成員狀態(tài)
SELECT MEMBER_HOST, MEMBER_ROLE, MEMBER_STATE FROM performance_schema.replication_group_members;
# 2. MGR運(yùn)行狀態(tài)
SHOW STATUS LIKE 'group_replication%';
# 3. 事務(wù)沖突(生產(chǎn)環(huán)境需監(jiān)控)
SELECT * FROM performance_schema.replication_group_conflicts;

5.2.2 結(jié)合Prometheus+Grafana監(jiān)控

  1. 安裝MySQL Exporter,配置監(jiān)控指標(biāo);
  2. 導(dǎo)入MGR專(zhuān)用監(jiān)控模板(Grafana ID:14050),重點(diǎn)監(jiān)控:
    • 節(jié)點(diǎn)在線狀態(tài)、角色;
    • 事務(wù)同步延遲;
    • 集群沖突數(shù);
    • MGR通信端口連通性。

5.3 數(shù)據(jù)備份策略

MGR僅保證集群內(nèi)數(shù)據(jù)一致,仍需定期備份:

  1. 開(kāi)啟binlog日志,設(shè)置過(guò)期時(shí)間:binlog_expire_logs_seconds=604800(7天);
  2. 每天在從節(jié)點(diǎn)執(zhí)行全量備份:
    mysqldump -u root -p"MySQL@123456" --all-databases --single-transaction --master-data=2 > /backup/mysql_full_$(date +%Y%m%d).sql

5.4 權(quán)限最小化(生產(chǎn)環(huán)境必做)

  1. MGR通信用戶僅授予必要權(quán)限,取消遠(yuǎn)程全量授權(quán):
    REVOKE ALL PRIVILEGES ON *.* FROM 'mgr_repl'@'%';
    GRANT REPLICATION SLAVE, GROUP_REPLICATION_ADMIN ON *.* TO 'mgr_repl'@'192.168.1.%';
    FLUSH PRIVILEGES;
  2. root用戶限制IP訪問(wèn):CREATE USER 'root'@'192.168.1.%' IDENTIFIED BY 'MySQL@123456';。

六、常見(jiàn)問(wèn)題與解決

6.1 節(jié)點(diǎn)加入集群失?。∕EMBER_STATE=ERROR)

  • 原因:節(jié)點(diǎn)server-id重復(fù)、GTID不一致、防火墻未開(kāi)放33061端口;
  • 解決:
    1. 檢查server-id是否唯一;
    2. 重置GTID:RESET MASTER;;
    3. 驗(yàn)證33061端口連通性:telnet 192.168.1.30 33061

6.2 故障切換后新主節(jié)點(diǎn)無(wú)法寫(xiě)入

  • 原因:?jiǎn)沃髂J轿撮_(kāi)啟、super_read_only未自動(dòng)關(guān)閉;
  • 解決:
    SET GLOBAL group_replication_single_primary_mode=ON;
    SET GLOBAL super_read_only=OFF;
    

6.3 集群腦裂(節(jié)點(diǎn)狀態(tài)不一致)

  • 原因:網(wǎng)絡(luò)分區(qū)、節(jié)點(diǎn)數(shù)量為偶數(shù);
  • 解決:
    1. 保證集群節(jié)點(diǎn)數(shù)為奇數(shù)(3/5/7);
    2. 配置group_replication_member_expel_timeout=5(縮短節(jié)點(diǎn)驅(qū)逐超時(shí))。

到此這篇關(guān)于MySQL Group Replication(MGR)集群部署實(shí)現(xiàn)自動(dòng)故障切換問(wèn)題記錄的文章就介紹到這了,更多相關(guān)MySQL Group Replication自動(dòng)故障切換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 高并發(fā)狀態(tài)下Replace Into造成的死鎖問(wèn)題解決

    高并發(fā)狀態(tài)下Replace Into造成的死鎖問(wèn)題解決

    本文主要介紹了高并發(fā)狀態(tài)下Replace Into造成的死鎖問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Mysql臨時(shí)變量的具體使用

    Mysql臨時(shí)變量的具體使用

    本文主要介紹了Mysql臨時(shí)變量的具體使用,臨時(shí)變量有分為用戶變量和會(huì)話變量,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • MySQL中如何增加字段SQL語(yǔ)句

    MySQL中如何增加字段SQL語(yǔ)句

    這篇文章主要介紹了MySQL中如何增加字段SQL語(yǔ)句問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • MySQL數(shù)據(jù)庫(kù)基礎(chǔ)篇SQL窗口函數(shù)示例解析教程

    MySQL數(shù)據(jù)庫(kù)基礎(chǔ)篇SQL窗口函數(shù)示例解析教程

    這篇文章主要為大家介紹了MySQL數(shù)據(jù)庫(kù)基礎(chǔ)篇之窗口函數(shù)示例解析教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • MySQL?alter命令修改表語(yǔ)法實(shí)例詳解

    MySQL?alter命令修改表語(yǔ)法實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于MySQL?alter命令修改表語(yǔ)法實(shí)例詳解的相關(guān)資料,在MySQL中ALTER指令的作用是修改已存在的數(shù)據(jù)庫(kù)表的結(jié)構(gòu),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • MySQL數(shù)據(jù)庫(kù)中UUID主鍵性能優(yōu)化的方案詳解

    MySQL數(shù)據(jù)庫(kù)中UUID主鍵性能優(yōu)化的方案詳解

    最近我們?cè)谛阅軆?yōu)化中發(fā)現(xiàn)了一個(gè)隱蔽的問(wèn)題,數(shù)據(jù)庫(kù)的寫(xiě)入和查詢(xún)性能在數(shù)據(jù)量增長(zhǎng)后出現(xiàn)明顯下降,原因竟然是UUID,本文將剖析UUID在數(shù)據(jù)庫(kù)中的真實(shí)影響并提供更優(yōu)化的解決方案,希望對(duì)大家有所幫助
    2026-02-02
  • MySQL死鎖日志的實(shí)例分析技巧總結(jié)

    MySQL死鎖日志的實(shí)例分析技巧總結(jié)

    MySQL死鎖是線上經(jīng)常遇到的現(xiàn)象,MySQL死鎖日志分析方法有助于研發(fā)快速提取信息,提高分析效率,通過(guò)了解死鎖觸發(fā)條件、檢測(cè)機(jī)制及鎖類(lèi)型,結(jié)合日志分析工具,可以更有效地解決死鎖問(wèn)題
    2024-11-11
  • mysql執(zhí)行計(jì)劃id為空(UNION關(guān)鍵字)詳解

    mysql執(zhí)行計(jì)劃id為空(UNION關(guān)鍵字)詳解

    這篇文章主要給大家介紹了關(guān)于mysql執(zhí)行計(jì)劃id為空(UNION關(guān)鍵字)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • 編寫(xiě)腳本令Xtrabackup對(duì)MySQL數(shù)據(jù)進(jìn)行備份的教程

    編寫(xiě)腳本令Xtrabackup對(duì)MySQL數(shù)據(jù)進(jìn)行備份的教程

    這篇文章主要介紹了編寫(xiě)腳本令Xtrabackup對(duì)MySQL數(shù)據(jù)進(jìn)行備份的教程,示例環(huán)境基于CentOS系統(tǒng),需要的朋友可以參考下
    2015-12-12
  • mysql數(shù)據(jù)遷移到Oracle的正確方法

    mysql數(shù)據(jù)遷移到Oracle的正確方法

    這篇文章主要為大家詳細(xì)介紹了mysql數(shù)據(jù)遷移到Oracle的正確方法,文中步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評(píng)論

葫芦岛市| 璧山县| 泗水县| 原阳县| 高台县| 汕头市| 惠州市| 安岳县| 桂林市| 江永县| 岳阳市| 夏津县| 安塞县| 琼结县| 达孜县| 仲巴县| 剑河县| 涟源市| 平潭县| 隆化县| 东乡| 石屏县| 商城县| 宜州市| 淮南市| 深州市| 类乌齐县| 通城县| 秭归县| 抚宁县| 新野县| 石柱| 武夷山市| 天水市| 陕西省| 瑞金市| 澄迈县| 克山县| 南靖县| 神农架林区| 子洲县|