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

主頁 > 知識庫 > MySQL Router的安裝部署

MySQL Router的安裝部署

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

01 MySQL Router介紹

    前面的文章中,我們說了ReplicaSet的基本概念MySQL Shell工具以及如何使用MySQL Shell搭建Innodb Replicaset。今天我們來看InnoDB ReplicaSet部署過程中的另一個重要組件MySQL Router。

MySQL Router是什么?

    為了更好的理解Innodb Replicaset,我們把之前的那張圖搬遷過來,如下: 

通過上面的圖,不難看出,MySQL Router是應用程序連接的入口,它的存在,讓底層的架構對應用程序透明,應用程序只需要連接MySQL Router就可以和底層的數據庫打交道,而數據庫的主從架構,都是記錄在MySQL Router的原信息里面的。

版本

    MySQL Router是MySQL官方的一款輕量級的高性能中間件,它介于應用程序和MySQL Server之間,應用程序通過連接MySQL Router和底層的MySQL Server之間通信,它對應用程序是透明的。官方文檔建議搭配MySQL8.0或者MySQL5.7的Server使用。目前最新的版本是MySQL Router 8,如果您使用過MySQL Router的2.0或者2.1版本,強烈建議升級到MySQL Router 8。

MySQL Router特點?

1、對應用透明。MySQL Router要做到對應用透明,它必須連接底層的MySQL,并知道當前哪個節點是Primary,這樣,才能夠在發生故障的時候進行故障轉移。

2、使用場景。基于這個特性,它可以用在Innodb Cluster、Innodb Replicaset或者MGR的環境中。

3、MySQL Router會保留在線的MySQL實例的緩存列表,或者已經配置好的Innodb Cluster集群的拓撲關系,除此啟動的時候,這些信息將從MySQL Router的配置表中獲取。

4、為保證緩存中的元信息能夠得到即時更新,MySQL Router需要保證至少能夠和集群中的一個正常節點保持通信,它會從當前實例的Performance_schema表中獲取數據庫的原信息和實時狀態。

5、當集群中和MySQL Router通信的節點關閉時,MySQL Router會嘗試訪問集群中的其他節點。并重新獲取相關元數據信息。

02 MySQL Router的安裝部署

      為了獲取更好的性能,通常情況下,MySQL  Router會和應用程序部署在一起,這通常是基于下面的考慮:

1、可以通過socket套接字連接到MySQL Router,而不是tcp/ip方法

2、減少了網絡上的延時

3、可以配置指定的賬戶來訪問數據庫,例如myapp@'host'而不是類似myapp@'%'這種全網段的賬號,有利于提升安全性

4、通常,相比數據庫服務器,應用服務器更容易擴展。

官方給的部署架構圖如下:

下載安裝過程:

1、直接登錄官網下載MySQL Router的對應版本。

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

2、下載完成之后,解壓,以8.0.20為例,由于是tar.xz格式的文件,解壓命令如下:

xz -d xxx.tar.xz  (解壓成tar格式)

tar xvf xxx.tar     (即可)

接下來就是初始化過程了,初始化的時候,需要我們的MySQL Server部署完畢,在之前的文章中,我們已經部署好了一個Innodb Replicaset架構,它有一主一從,IP地址分別是:

192.168.1.10  5607 Primary

192.168.1.20  5607 Secondary

初始化過程:

1、利用初始化命令初始化MySQL Router:

mysqlrouter
   --bootstrap superdba@'10.13.3.129':5607 
   --directory /data1/yazhou5/mysql/mysql-router
   --conf-use-sockets 
   --account routerfriend 
   --account-create always

這里,需要解釋一下其中的幾個參數:

--bootstrap          代表引導的實例,后面接一個連接信息的URL;
--directory          代表生成的配置目錄
--conf-use-sockets   代表是否啟用套接字連接(是否生成套接字文件)
--account            代表初始化后MySQL Router使用什么賬號連接MySQL Server
--account-create     代表賬號創建策略,always代表只有在account不存在的時候才進行bootstrap操作

這個命令敲下去之后,返回報錯信息如下:

Error: You are bootstraping as a superuser.
This will make all the result files (config etc.) privately owned by the superuser.
Please use --user=username option to specify the user that will be running the router.
Use --user=root if this really should be the superuser.

系統檢測到我們使用root賬號來進行的MySQL Router初始化,提示我們如果使用root操作,需要在最后面補充--user=root

2、補充--user=root之后,重新執行命令,結果如下:

[root mysql-router]# /usr/local/mysql-router-8.0.20/bin/mysqlrouter --bootstrap superdba@10.185.13.195:5607  --directory /data1/yazhou5/mysql/mysql-router --conf-use-sockets  --account routerfriend  --account-create always --user=root --force
Please enter MySQL password for superdba:   # 這里輸入我們已知的superdba賬號密碼
# Bootstrapping MySQL Router instance at '/data1/yazhou5/mysql/mysql-router'...

Please enter MySQL password for routerfriend: # 這里創建新的account賬號的密碼
- Creating account(s) 
- Verifying account (using it to run SQL queries that would be run by Router)
- Storing account in keyring
- Adjusting permissions of generated files
- Creating configuration /data1/yazhou5/mysql/mysql-router/mysqlrouter.conf

# MySQL Router configured for the InnoDB ReplicaSet 'yeyz_test'

After this MySQL Router has been started with the generated configuration

    $ /usr/local/mysql-router-8.0.20/bin/mysqlrouter -c /data1/yazhou5/mysql/mysql-router/mysqlrouter.conf

the cluster 'yeyz_test' can be reached by connecting to:

## MySQL Classic protocol

- Read/Write Connections: localhost:6446, /data1/yazhou5/mysql/mysql-router/mysql.sock
- Read/Only Connections:  localhost:6447, /data1/yazhou5/mysql/mysql-router/mysqlro.sock

## MySQL X protocol

- Read/Write Connections: localhost:64460, /data1/yazhou5/mysql/mysql-router/mysqlx.sock
- Read/Only Connections:  localhost:64470, /data1/yazhou5/mysql/mysql-router/mysqlxro.sock

可以看到,提示我們輸入兩次密碼之后,bootstrap的操作就算成功了。

3、此時我們進入參數中指定的--directory目錄中,查看生成的初始化文件,可以看到:

drwx------ 2 root root 4096 Apr 12 23:15 data
drwx------ 2 root root 4096 Apr 12 23:15 log
-rw------- 1 root root 1532 Apr 12 23:15 mysqlrouter.conf
-rw------- 1 root root  104 Apr 12 23:15 mysqlrouter.key
drwx------ 2 root root 4096 Apr 12 23:15 run
-rwx------ 1 root root  353 Apr 12 23:15 start.sh
-rwx------ 1 root root  209 Apr 12 23:15 stop.sh

生成了一些配置文件和啟停腳本,我們打開這個配置文件mysqlrouter.conf看看內容:

# File automatically generated during MySQL Router bootstrap
[DEFAULT]
user=root
logging_folder=/data1/yazhou5/mysql/mysql-router/log
runtime_folder=/data1/yazhou5/mysql/mysql-router/run
data_folder=/data1/yazhou5/mysql/mysql-router/data
keyring_path=/data1/yazhou5/mysql/mysql-router/data/keyring
master_key_path=/data1/yazhou5/mysql/mysql-router/mysqlrouter.key
connect_timeout=15
read_timeout=30
dynamic_state=/data1/yazhou5/mysql/mysql-router/data/state.json

[logger]
level = INFO

[metadata_cache:yeyz_test]
cluster_type=rs
router_id=1
user=routerfriend
metadata_cluster=yeyz_test
ttl=0.5
auth_cache_ttl=-1
auth_cache_refresh_interval=2

[routing:yeyz_test_rw]
bind_address=0.0.0.0
bind_port=6446
socket=/data1/yazhou5/mysql/mysql-router/mysql.sock
destinations=metadata-cache://yeyz_test/?role=PRIMARY
routing_strategy=first-available
protocol=classic

[routing:yeyz_test_ro]
bind_address=0.0.0.0
bind_port=6447
socket=/data1/yazhou5/mysql/mysql-router/mysqlro.sock
destinations=metadata-cache://yeyz_test/?role=SECONDARY
routing_strategy=round-robin-with-fallback
protocol=classic

[routing:yeyz_test_x_rw]
bind_address=0.0.0.0
bind_port=64460
socket=/data1/yazhou5/mysql/mysql-router/mysqlx.sock
destinations=metadata-cache://yeyz_test/?role=PRIMARY
routing_strategy=first-available
protocol=x

[routing:yeyz_test_x_ro]
bind_address=0.0.0.0
bind_port=64470
socket=/data1/yazhou5/mysql/mysql-router/mysqlxro.sock
destinations=metadata-cache://yeyz_test/?role=SECONDARY
routing_strategy=round-robin-with-fallback
protocol=x

4、分析生成的配置文件,不難發現,MySQL Router配置了4個端口,分別是6446、6447、64460、64470和對應的套接字文件。

當然,我們可以通過一些參數的配置改變默認的端口和套接字,例如:

--conf-use-sockets:(可選)為所有四種連接類型啟用UNIX域套接字,。
--conf-skip-tcp:   (可選)禁用TCP端口,如果只希望使用套接字,則可以通過--conf-use-sockets傳遞該選項。
--conf-base-port:  (可選)更改端口范圍,而不使用默認端口。 默認為6446。
--conf-bind-address:(可選)更改每個路由的bind_address值。 

5、使用命令在本地啟動MySQL Router,指定本地生成的配置文件,命令如下:

[root@ mysql-router]# /usr/local/mysql-router-8.0.20/bin/mysqlrouter -c /data1/yazhou5/mysql/mysql-router/mysqlrouter.conf 

啟動之后,我們使用剛才創建的routerfriend賬號以及6446這個讀寫端口來連接MySQL Router:

[root@ mysql-router]# mysql -u routerfriend -h 127.0.0.1 -P 6446  -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 95696
Server version: 8.0.19 MySQL Community Server - GPL

Copyright (c) 2000, 2013, 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 '\h' for help. Type '\c' to clear the current input statement.

routerfriend@127.0.0.1 [(none)] 23:42:00>
routerfriend@127.0.0.1 [(none)] 23:42:01>select @@port;
+--------+
| @@port |
+--------+
|   5607 |
+--------+
1 row in set (0.00 sec)

我們通過6446端口連接MySQL Router之后,然后在MySQL Router中執行select @@port命令查看當前的端口號信息,可以看到,返回值是5607,說明MySQL Router已經幫我們路由到了底層的MySQL Server上面。

   這個routerfriend賬號的權限可能不夠,我們也可以換成superdba的高權限賬號去連接mysqlrouter,這樣就可以對MySQL Server中的庫表進行讀寫操作。

03 查看MySQL Router的元信息

    MySQL Router搭建完畢后,可以通過查看元信息庫mysql_innodb_cluster_metadata里面的表信息,包含cluster表、router表、以及instances表,對應的如下:

superdba@127.0.0.1 [mysql_innodb_cluster_metadata] 23:51:20>select * from instances;
+-------------+--------------------------------------+--------------------+--------------------------------------+--------------------+----------------------------------------+------------+-------------+
| instance_id | cluster_id                           | address            | mysql_server_uuid                    | instance_name      | addresses                              | attributes | description |
+-------------+--------------------------------------+--------------------+--------------------------------------+--------------------+----------------------------------------+------------+-------------+
|           1 | 94d5f935-990e-11eb-8832-fa163ebd2444 | 192.168.1.10:5607 | 0609f966-690f-11eb-bd89-fa163ebd2444 | 192.168.1.10:5607 | {"mysqlClassic": "192.168.1.10:5607"} | {}         | NULL        |
|           2 | 94d5f935-990e-11eb-8832-fa163ebd2444 | 192.168.1.20:5607  | c6ba0bf0-6d4d-11eb-aa4b-b00875209c1c | 192.168.1.20:5607  | {"mysqlClassic": "192.168.1.20:5607"}  | {}         | NULL        |
+-------------+--------------------------------------+--------------------+--------------------------------------+--------------------+----------------------------------------+------------+-------------+
2 rows in set (0.00 sec)

superdba@127.0.0.1 [mysql_innodb_cluster_metadata] 23:51:30>
superdba@127.0.0.1 [mysql_innodb_cluster_metadata] 23:51:30>select * from clusters;
+--------------------------------------+--------------+--------------------+---------+------------------------------------------------+--------------+--------------+----------------+
| cluster_id                           | cluster_name | description        | options | attributes                                     | cluster_type | primary_mode | router_options |
+--------------------------------------+--------------+--------------------+---------+------------------------------------------------+--------------+--------------+----------------+
| 94d5f935-990e-11eb-8832-fa163ebd2444 | yeyz_test    | Default ReplicaSet | NULL    | {"adopted": 0, "opt_gtidSetIsComplete": false} | ar           | pm           | NULL           |
+--------------------------------------+--------------+--------------------+---------+------------------------------------------------+--------------+--------------+----------------+
1 row in set (0.00 sec)

superdba@127.0.0.1 [mysql_innodb_cluster_metadata] 23:51:57>
superdba@127.0.0.1 [mysql_innodb_cluster_metadata] 23:51:58>select * from routers;
+-----------+-------------+--------------+-------------+---------+---------------------+------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+---------+
| router_id | router_name | product_name | address     | version | last_check_in       | attributes                                                                                                                   | cluster_id                           | options |
+-----------+-------------+--------------+-------------+---------+---------------------+------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+---------+
|         1 |             | MySQL Router | 10.13.3.129 | 8.0.20  | 2021-04-12 23:52:29 | {"ROEndpoint": "6447", "RWEndpoint": "6446", "ROXEndpoint": "64470", "RWXEndpoint": "64460", "MetadataUser": "routerfriend"} | 94d5f935-990e-11eb-8832-fa163ebd2444 | NULL    |
+-----------+-------------+--------------+-------------+---------+---------------------+------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+---------+
1 row in set (0.00 sec)

還可以從表中查看當前的primary節點信息,primary_master字段為1的,即為primary節點。

superdba@127.0.0.1 [mysql_innodb_cluster_metadata] 23:52:29>select * from async_cluster_members;
+--------------------------------------+---------+-------------+--------------------+----------------+------------------------------------------------------------------------------------------------------------------+
| cluster_id                           | view_id | instance_id | master_instance_id | primary_master | attributes                                                                                                       |
+--------------------------------------+---------+-------------+--------------------+----------------+------------------------------------------------------------------------------------------------------------------+
| 94d5f935-990e-11eb-8832-fa163ebd2444 |       2 |           1 |               NULL |              1 | {"instance.address": "192.168.1.10:5607", "instance.mysql_server_uuid": "0609f966-690f-11eb-bd89-fa163ebd2444"} |
| 94d5f935-990e-11eb-8832-fa163ebd2444 |       3 |           1 |               NULL |              1 | {"instance.address": "192.168.1.10:5607", "instance.mysql_server_uuid": "0609f966-690f-11eb-bd89-fa163ebd2444"} |
| 94d5f935-990e-11eb-8832-fa163ebd2444 |       3 |           2 |                  1 |              0 | {"instance.address": "192.168.1.20:5607", "instance.mysql_server_uuid": "c6ba0bf0-6d4d-11eb-aa4b-b00875209c1c"}  |
+--------------------------------------+---------+-------------+--------------------+----------------+------------------------------------------------------------------------------------------------------------------+
3 rows in set (0.01 sec)

以上就是MySQL Router的安裝部署的詳細內容,更多關于MySQL Router的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MySQL之高可用集群部署及故障切換實現
  • docker上部署MySQL的示例
  • Docker部署mysql遠程連接 解決2003的問題
  • docker-compose基于MySQL8部署項目的實現
  • mysql-canal-rabbitmq 安裝部署超詳細教程
  • MySQL之MHA高可用配置及故障切換實現詳細部署步驟
  • MySQL 搭建MHA架構部署的步驟
  • CentOS8下MySQL 8.0安裝部署的方法

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

巨人網絡通訊聲明:本文標題《MySQL Router的安裝部署》,本文關鍵詞  MySQL,Router,的,安裝,部署,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL Router的安裝部署》相關的同類信息!
  • 本頁收集關于MySQL Router的安裝部署的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧洲精品中文字幕| 91日韩在线专区| 国产一区二区三区av电影| 欧美日韩在线亚洲一区蜜芽| 中文字幕一区二| www.视频一区| 亚洲乱码日产精品bd| 色女孩综合影院| 亚洲bdsm女犯bdsm网站| 91精品国模一区二区三区| 日本强好片久久久久久aaa| 91精品国产91综合久久蜜臀| 麻豆精品一区二区综合av| 久久久久高清精品| 色婷婷综合激情| 日韩不卡免费视频| 欧美国产日韩a欧美在线观看| 91免费精品国自产拍在线不卡| 亚洲成人激情自拍| 精品国产乱码久久久久久免费| 国产91在线|亚洲| 亚洲天天做日日做天天谢日日欢 | 成人妖精视频yjsp地址| 国产精品久久久一区麻豆最新章节| 91色.com| 日本不卡视频在线| 国产亚洲精品bt天堂精选| 91蜜桃免费观看视频| 天天综合网天天综合色| 中文字幕欧美三区| 欧美日韩午夜影院| 国产福利一区二区三区视频在线| 亚洲综合在线免费观看| 欧美一区二区成人| 9人人澡人人爽人人精品| 麻豆freexxxx性91精品| 国产精品网曝门| 欧美日韩中文精品| 成人小视频免费在线观看| 亚洲国产一区二区在线播放| 久久久精品2019中文字幕之3| 7777精品伊人久久久大香线蕉的 | 韩国女主播成人在线观看| 国产精品国产三级国产三级人妇| 欧美日韩一级片网站| 风流少妇一区二区| 狠狠色综合播放一区二区| 水野朝阳av一区二区三区| |精品福利一区二区三区| 国产亚洲精品aa午夜观看| 精品女同一区二区| 91精品国产91久久久久久最新毛片 | 国产女主播在线一区二区| 欧美一区二区视频免费观看| 欧美午夜精品一区二区三区| 99久久精品免费看| jvid福利写真一区二区三区| 国产乱码字幕精品高清av| 国产综合色在线视频区| 亚洲国产另类精品专区| 亚洲精品成人悠悠色影视| 99精品欧美一区二区三区小说| 经典三级视频一区| 日韩电影在线一区二区三区| 天天综合天天综合色| 一区二区三区四区在线| 国产精品久久久久久久久动漫| 99在线热播精品免费| 国产精品91xxx| 国产成人在线看| 91丨九色丨国产丨porny| 激情综合色综合久久| 国内精品不卡在线| 国产成人精品一区二区三区四区| 日韩电影一区二区三区| 无码av免费一区二区三区试看| 亚洲综合男人的天堂| 亚洲成人免费影院| 麻豆精品在线视频| 成人黄色777网| 欧美婷婷六月丁香综合色| 日韩一卡二卡三卡国产欧美| 国产亚洲欧美日韩日本| 亚洲精品福利视频网站| 日产精品久久久久久久性色| 国产乱码精品一区二区三区av| 成人黄色在线视频| 欧美日韩精品电影| 国产欧美日韩在线| 亚洲天堂久久久久久久| 五月婷婷综合网| 春色校园综合激情亚洲| 欧美无人高清视频在线观看| 亚洲精品在线免费观看视频| 亚洲欧洲性图库| 日韩va亚洲va欧美va久久| 狠狠狠色丁香婷婷综合激情| 91捆绑美女网站| 日韩亚洲欧美成人一区| 综合精品久久久| 美日韩黄色大片| 成人精品国产福利| 56国语精品自产拍在线观看| 91精品国产综合久久精品| 久久免费电影网| 同产精品九九九| 99riav久久精品riav| 欧美在线色视频| 欧美日韩亚洲综合在线| 久久日一线二线三线suv| 亚洲精品视频在线看| 国产成人免费在线| 欧美一卡2卡3卡4卡| 国产日韩精品一区| 亚洲自拍偷拍九九九| 国产一区二区三区四区在线观看| 欧美影院精品一区| 国产婷婷一区二区| 一区二区高清在线| 成人自拍视频在线观看| 日韩三级中文字幕| 亚洲一线二线三线久久久| 成人理论电影网| 精品国产网站在线观看| 免费观看在线综合| 欧美一区二区在线播放| 亚洲国产中文字幕在线视频综合| 99免费精品视频| 激情综合色播激情啊| 成人免费观看视频| 久久综合色一综合色88| 久久精品国产亚洲a| 色老汉av一区二区三区| 中文在线一区二区| 国产成人亚洲综合a∨婷婷| 欧美mv和日韩mv的网站| 性久久久久久久| 欧美影院午夜播放| 亚洲精品一二三区| 波多野结衣中文字幕一区| 国产精品水嫩水嫩| 一本在线高清不卡dvd| 一区二区三区四区亚洲| 99久久综合国产精品| 亚洲色图在线视频| 欧洲av一区二区嗯嗯嗯啊| 亚洲精品va在线观看| 色婷婷av一区二区三区gif| 亚洲欧美aⅴ...| 一本久久精品一区二区| 亚洲国产aⅴ天堂久久| 日韩一卡二卡三卡四卡| 国产传媒欧美日韩成人| 欧美国产欧美综合| 91亚洲午夜精品久久久久久| 亚洲精品福利视频网站| 日韩一级视频免费观看在线| 国产原创一区二区| 国产精品黄色在线观看| 色呦呦国产精品| 日韩高清在线不卡| 久久久99精品免费观看| 色综合视频在线观看| 久久精品国产第一区二区三区| 欧美国产97人人爽人人喊| 91美女片黄在线| 另类成人小视频在线| 亚洲欧美一区二区三区国产精品 | 亚洲亚洲精品在线观看| 欧美日韩一区精品| 免费观看成人鲁鲁鲁鲁鲁视频| 久久精品网站免费观看| 不卡高清视频专区| 亚洲va欧美va天堂v国产综合| 精品国产一区二区三区av性色| 成人国产一区二区三区精品| 午夜电影网亚洲视频| 亚洲图片激情小说| 欧美日韩一区二区三区免费看| 麻豆精品一二三| 亚洲一区二区三区视频在线| 日韩亚洲欧美一区二区三区| 色综合久久综合网97色综合| 香蕉久久夜色精品国产使用方法| 欧美肥胖老妇做爰| 色综合久久88色综合天天免费| 韩国av一区二区| 天天影视色香欲综合网老头| 国产精品热久久久久夜色精品三区 | 亚洲欧美日本在线| 精品国产乱码久久久久久蜜臀| 日本久久精品电影| 高清在线不卡av| 亚洲第一精品在线| 国产精品久99| 国产日产欧美一区| 91精品国产美女浴室洗澡无遮挡| 91网站黄www| 99久久国产综合精品色伊| 日韩电影在线一区二区三区|