日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

MySQL Router的安裝部署

瀏覽:33日期:2023-10-03 16:12:36
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 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、通常,相比數據庫服務器,應用服務器更容易擴展。

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

MySQL Router的安裝部署

下載安裝過程:

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 --forcePlease 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.confthe 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 datadrwx------ 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.keydrwx------ 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=rootlogging_folder=/data1/yazhou5/mysql/mysql-router/logruntime_folder=/data1/yazhou5/mysql/mysql-router/rundata_folder=/data1/yazhou5/mysql/mysql-router/datakeyring_path=/data1/yazhou5/mysql/mysql-router/data/keyringmaster_key_path=/data1/yazhou5/mysql/mysql-router/mysqlrouter.keyconnect_timeout=15read_timeout=30dynamic_state=/data1/yazhou5/mysql/mysql-router/data/state.json[logger]level = INFO[metadata_cache:yeyz_test]cluster_type=rsrouter_id=1user=routerfriendmetadata_cluster=yeyz_testttl=0.5auth_cache_ttl=-1auth_cache_refresh_interval=2[routing:yeyz_test_rw]bind_address=0.0.0.0bind_port=6446socket=/data1/yazhou5/mysql/mysql-router/mysql.sockdestinations=metadata-cache://yeyz_test/?role=PRIMARYrouting_strategy=first-availableprotocol=classic[routing:yeyz_test_ro]bind_address=0.0.0.0bind_port=6447socket=/data1/yazhou5/mysql/mysql-router/mysqlro.sockdestinations=metadata-cache://yeyz_test/?role=SECONDARYrouting_strategy=round-robin-with-fallbackprotocol=classic[routing:yeyz_test_x_rw]bind_address=0.0.0.0bind_port=64460socket=/data1/yazhou5/mysql/mysql-router/mysqlx.sockdestinations=metadata-cache://yeyz_test/?role=PRIMARYrouting_strategy=first-availableprotocol=x[routing:yeyz_test_x_ro]bind_address=0.0.0.0bind_port=64470socket=/data1/yazhou5/mysql/mysql-router/mysqlxro.sockdestinations=metadata-cache://yeyz_test/?role=SECONDARYrouting_strategy=round-robin-with-fallbackprotocol=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 95696Server version: 8.0.19 MySQL Community Server - GPLCopyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.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 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
麻豆国产精品一区二区三区| 久久福利毛片| 国产欧美一区| 国产精品九九| 国产经典一区| 色综合五月天| 日韩av首页| 国产色综合网| 日韩影片在线观看| 国产精品一二| 蜜桃久久久久| 日韩a一区二区| 一本大道色婷婷在线| 中文字幕在线视频网站| 久久精品一区二区不卡| av中文字幕在线观看第一页| 私拍精品福利视频在线一区| 亚洲大全视频| 四虎精品一区二区免费| 国产精品4hu.www| 亚洲伦乱视频| 亚洲免费精品| 日本精品另类| 麻豆网站免费在线观看| 美女久久久久| 亚洲人成毛片在线播放女女| 国产精品一卡| 色婷婷精品视频| 亚洲三级国产| 精品久久91| 欧美肉体xxxx裸体137大胆| 水蜜桃久久夜色精品一区的特点| 日韩一区二区三区四区五区| 麻豆成人av在线| 欧美 日韩 国产一区二区在线视频 | 日韩在线黄色| 国产精品成人一区二区网站软件| 亚洲人成在线网站| 亚洲精品影视| 国产一区一一区高清不卡| 九九久久电影| 国产精品丝袜在线播放| 久久精品免费一区二区三区| 一二三区精品| 免费亚洲婷婷| 日韩视频二区| 久久久国产精品网站| 欧美va天堂| 国产亚洲精品精品国产亚洲综合| 日韩国产一区二区| 亚洲精品在线二区| xxxxx性欧美特大| 亚洲网址在线观看| sm捆绑调教国产免费网站在线观看| 激情五月综合网| 国产精品久久久久久久久免费高清 | 三级一区在线视频先锋| 国产九九精品| 婷婷综合网站| 国产福利一区二区三区在线播放| 久久国产小视频| 日韩中文字幕视频网| 国产一区二区三区黄网站| 日韩专区在线视频| 最新中文字幕在线播放| 色综合视频一区二区三区日韩 | 久久精品国内一区二区三区| 国产精品色网| 免费一二一二在线视频| 欧美日韩午夜电影网| 亚洲第一精品影视| 麻豆91在线播放| 亚洲精一区二区三区| 高清不卡亚洲| 国产精品www.| 蜜臀久久久久久久| 亚洲不卡av不卡一区二区| 国产欧美88| 亚洲最新av| 国内精品99| 三上亚洲一区二区| 国产欧美在线| 中文字幕日本一区二区| 久久九九电影| 麻豆视频在线观看免费网站黄 | 亚洲欧美伊人| 国产成人精品免费视| 国产欧美视频在线| 亚洲精品欧美| 老司机精品久久| 亚洲精品99| 色老板在线视频一区二区| 精品中文字幕一区二区三区 | 亚州av日韩av| 香蕉久久国产| 午夜欧美在线| 久久精品91| 日本美女一区| 精品一区视频| 美女国产精品久久久| 国产精品一区亚洲| 欧美日韩亚洲一区在线观看| 男人的天堂久久精品| 国产综合精品| 成人午夜国产| 欧美国产美女| 亚洲精品观看| 卡一精品卡二卡三网站乱码| 国产精品主播| 青草国产精品| 日韩av网站在线免费观看| 在线精品观看| 鲁大师成人一区二区三区| 亚洲国产专区| 99国产精品一区二区| 免费污视频在线一区| 日韩在线观看不卡| 久久精品二区三区| 久久久久国产精品一区三寸 | 久久久久一区| 国产一区日韩一区| 久久五月天小说| 蜜桃成人av| 日韩视频一区二区三区在线播放免费观看 | 1024精品一区二区三区| 亚洲福利久久| 欧美搞黄网站| 亚洲综合电影一区二区三区| 免播放器亚洲| 日韩精选在线| 国产福利一区二区三区在线播放| 欧美国产日本| 黄色aa久久| 亚洲www啪成人一区二区| 激情久久久久久| 国产视频一区免费看| 免播放器亚洲| 日本在线观看不卡视频| 91成人小视频| 久久免费视频66| 中文在线资源| 久久一级电影| 男女性色大片免费观看一区二区 | 天堂av在线| 婷婷综合激情| 久热精品在线| 日韩av一区二区三区| 国产精品分类| 日韩欧美中文| 9色精品在线| 日韩精品中文字幕吗一区二区| 国产精品日本一区二区不卡视频 | 91看片一区| 欧美中文日韩| 国产精品一区二区三区美女 | 日韩深夜视频| 欧美精品一线| 欧美综合精品| 麻豆高清免费国产一区| av一区在线| 亚洲专区视频| 精品色999| 在线亚洲观看| 欧美激情日韩| 亚洲精品99| 国产欧美一区二区色老头| 日韩伦理一区| 日韩中文字幕麻豆| 国产精品高潮呻吟久久久久| 999国产精品永久免费视频app| 亚洲有吗中文字幕| 国产成人调教视频在线观看| 午夜欧美视频| 久久99偷拍| 国产一区成人| 黄色网一区二区| 免费一区二区视频| 精品99久久| 免费日本视频一区| 日本欧美国产| 亚洲欧美一级| 中文在线免费视频| 亚洲精品成人一区| 色综合狠狠操| 日韩精品一区二区三区中文字幕| 日本不卡免费高清视频在线| 亚洲精品高潮| 中文另类视频| 日韩av电影一区| 91精品国产调教在线观看| 欧美影院视频| 欧美日韩视频一区二区三区| 精品欧美视频| 日韩精品中文字幕一区二区| 久久精品动漫| 国产精品国码视频| 麻豆精品91| 色婷婷久久久| 国产精品网址| 亚洲日产av中文字幕|