溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用InnoDB Cluster解決MySQL數據庫高可用方案

發布時間:2020-05-21 15:23:03 來源:網絡 閱讀:395 作者:三月 欄目:MySQL數據庫

下文主要給大家帶來使用InnoDB Cluster解決MySQL數據庫高可用方案,希望這些內容能夠帶給大家實際用處,這也是我編輯使用InnoDB Cluster解決MySQL數據庫高可用方案這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

MySQL InnoDB Cluster為MySQL提供了一個完整的高可用解決方案。MySQL Shell包含AdminAPI,能夠輕松地配置和管理至少三個MySQL云服務器實例組,以作為InnoDB集群。每個MySQL云服務器實例都運行MySQL Group Replication,它提供了在innodb集群中復制數據的機制,并內置故障轉移。MySQL Router可以根據您部署的集群自動配置自己,將客戶端應用程序透明地連接到云服務器實例。如果云服務器實例發生意外故障,群集將自動重新配置。在默認的單主模式下,InnoDB集群有一個讀寫云服務器實例——主云服務器。多個輔助云服務器實例是主云服務器的副本。如果主云服務器出現故障,輔助云服務器將自動提升為主云服務器的角色。MySQL Router檢測到這一點,并將客戶端應用程序轉發到新的主云服務器。

[root@wallet01 ~]# mysql -uroot -p
Enter password:

mysql> grant all privileges on *.* to 'root'@'wallet01' identified by 'abcd@1234';
Query OK, 0 rows affected, 1 warning (0.05 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)

[root@wallet01 ~]# yum install -y mysql-shell

[root@wallet01 ~]#  mysqlsh --log-level=DEBUG3
MySQL Shell 8.0.18

Copyright (c) 2016, 2019, 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.

 MySQL  JS > shell.connect('root@wallet01:3306')
Creating a session to 'root@wallet01:3306'
Please provide the password for 'root@wallet01:3306': *********
Save password for 'root@wallet01:3306'? [Y]es/[N]o/Ne[v]er (default No): y
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 290
Server version: 5.7.27-log MySQL Community Server (GPL)
No default schema selected; type \use <schema> to set one.
<ClassicSession:root@wallet01:3306>

 MySQL  wallet01:3306  JS > var cluster = dba.createCluster('walletCluster', {adoptFromGR: true})
A new InnoDB cluster will be created based on the existing replication group on instance 

'wallet01:3306'.

Creating InnoDB cluster 'walletCluster' on 'wallet01:3306'...

Adding Seed Instance...
Adding Instance 'wallet03:3306'...
Adding Instance 'wallet01:3306'...
Adding Instance 'wallet02:3306'...
Resetting distributed recovery credentials across the cluster...
Cluster successfully created based on existing replication group.

 MySQL  wallet01:3306  JS > cluster.status();
{
    "clusterName": "walletCluster", 
    "defaultReplicaSet": {
        "name": "default", 
        "primary": "wallet01:3306", 
        "ssl": "DISABLED", 
        "status": "OK", 
        "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.", 
        "topology": {
            "wallet01:3306": {
                "address": "wallet01:3306", 
                "mode": "R/W", 
                "readReplicas": {}, 
                "role": "HA", 
                "status": "ONLINE"
            }, 
            "wallet02:3306": {
                "address": "wallet02:3306", 
                "mode": "R/O", 
                "readReplicas": {}, 
                "role": "HA", 
                "status": "ONLINE"
            }, 
            "wallet03:3306": {
                "address": "wallet03:3306", 
                "mode": "R/O", 
                "readReplicas": {}, 
                "role": "HA", 
                "status": "ONLINE"
            }
        }, 
        "topologyMode": "Single-Primary"
    }, 
    "groupInformationSourceMember": "wallet01:3306"
}

 MySQL  wallet01:3306  JS > \quit
Bye!
[root@wallet01 ~]# yum install -y mysql-router 
[root@wallet01 ~]# mysqlrouter --bootstrap root@wallet01:3306 --user=mysqlrouter --name=router01
Please enter MySQL password for root: 
WARNING: The MySQL server does not have SSL configured and metadata used by the router may be 

transmitted unencrypted.
# Reconfiguring system MySQL Router instance...

- Checking for old Router accounts
  - No prior Router accounts found
- Creating mysql account 'mysql_router1_a8933v9tcn8v'@'%' for cluster management
- Storing account in keyring
- Adjusting permissions of generated files
- Creating configuration /etc/mysqlrouter/mysqlrouter.conf

# MySQL Router 'router01' configured for the InnoDB cluster 'walletCluster'

After this MySQL Router has been started with the generated configuration

    $ /etc/init.d/mysqlrouter restart
or
    $ mysqlrouter -c /etc/mysqlrouter/mysqlrouter.conf

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

## MySQL Classic protocol

- Read/Write Connections: localhost:6446
- Read/Only Connections:  localhost:6447

## MySQL X protocol

- Read/Write Connections: localhost:64460
- Read/Only Connections:  localhost:64470

Existing configuration backed up to '/etc/mysqlrouter/mysqlrouter.conf.bak'

[root@wallet01 ~]# /etc/init.d/mysqlrouter start
Starting mysqlrouter:                                      [  OK  ]

[root@wallet01 ~]# /etc/init.d/mysqlrouter status
mysqlrouter (pid  24451) is running...

[root@wallet02 ~]# yum install -y mysql-router 
[root@wallet02 ~]# mysqlrouter --bootstrap root@wallet01:3306 --user=mysqlrouter --name=router02 

[root@wallet02 ~]# /etc/init.d/mysqlrouter start
Starting mysqlrouter:                                      [  OK  ]

[root@wallet02 ~]# /etc/init.d/mysqlrouter status
mysqlrouter (pid  6906) is running...

[root@wallet03 ~]# yum install -y mysql-router 
[root@wallet03 ~]# mysqlrouter --bootstrap root@wallet01:3306 --user=mysqlrouter --name=router03

[root@wallet03 ~]# /etc/init.d/mysqlrouter start
Starting mysqlrouter:                                      [  OK  ]

[root@wallet03 ~]# /etc/init.d/mysqlrouter status
mysqlrouter (pid  18081) is running...

對于以上關于使用InnoDB Cluster解決MySQL數據庫高可用方案,大家是不是覺得非常有幫助。如果需要了解更多內容,請繼續關注我們的行業資訊,相信你會喜歡上這些內容的。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女