sql >> データベース >  >> RDS >> Mysql

MySQLシェル(およびMySQLルーター)を使用したMySQLInnoDBクラスターのセットアップ

    MySQL InnoDBクラスター。MySQLテクノロジーを組み合わせて、MySQLの完全に統合された高可用性ソリューションをデプロイおよび管理できるようにします。このコンテンツは、InnoDBクラスターの概要です。

    InnoDBクラスターは少なくとも3つのMySQLサーバーインスタンスで構成され、高可用性とスケーリング機能を提供します。 InnoDBクラスターは次のMySQLテクノロジーを使用します:

    MySQLシェル。MySQLの高度なクライアントおよびコードエディタです。

    MySQLサーバー、およびグループレプリケーション。これにより、一連のMySQLインスタンスが高可用性を提供できるようになります。 InnoDB Clusterは、グループレプリケーションを操作するための代替の使いやすいプログラムによる方法を提供します。

    MySQLルーター、アプリケーションとInnoDBクラスター間の透過的なルーティングを提供する軽量ミドルウェア。

    以下は、ビデオで使用されているスクリプトです

    MySQLシェル
    MySQLサーバー最小3サーバー
    ロードバランサーとしてのMySQLルーター

    wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
    rpm -ivh mysql80-community-release-el7-3.noarch.rpm
    yum mysql-shell -y

    をインストールします

    MysqlRouterは、yumリポジトリからアプリケーションサーバーにのみインストールしてください。

    yum install mysql-shell -y

    sudo mysqlsh –pympipインストールリクエスト

    sudo yum install mysql-router -y

    mysqlsh –uri [email protected]
    Not_so_secure1!
    Not_so_secure1!

    すべてのインスタンスでこれを実行します

    dba.configureInstance()
    パスワードを提供します
    2

    innodbcluster
    Strong_Password1!

    dba.checkInstanceConfiguration(‘[email protected]’)

    \ c [email protected]:3306
    var mycls =dba.createCluster('MUGHEES_CLS')
    mycls.describe()
    mycls.status()
    mycls.SetupRouterAccount( 'myrouter')

    最初のPrmryについて:

    mycls.addinstance(‘mysql2:3306’)
    mycls.addinstance(‘mysql3:3306’)

    ルーターサーバーの場合:
    mysqlrouter –bootstrap [email protected] -d myrouter_idc –account =myrouter

    mysqlrouter –bootstrap [email protected] –user mysqlrouter

    ##############サーバー:mysql1:####################

    CREATE USER‘myadmin’ @’%’ IDENTIFIED BY‘Strong_Password1!’
    *。*のすべての権限をmyadmin’@’%’に付与オプションを使用して付与します;

    mysqlsh –uri [email protected]

    \ sql
    select @@ hostname;
    CREATE DATABASE schoool; USE schoool;
    CREATE TABLE if not present schoool.student(stndid int primary key auto_increment、stdname varchar(100)、phone int、 classid int);
    INSERT schoool.student(stdname、phone、classid)values('Aslam'、123456977,7);
    INSERT schoool.student(stdname、phone、classid)values('Mughees' 、123456977,8);
    INSERT schoool.student(stdname、phone、classid)values('Ahmed'、123456977,9);
    SELECT * FROM schoool.student;

    @@ hostname;

    を選択します

    ####################サーバー:mysq12 ####################

    mysqlsh [email protected]

    \ sql
    @@ hostname

    を選択

    SELECT * FROM schoool.student;

    while [1] do
    sleep 1
    docker exec -it mysql-client4 mysql -h 192.168.56.110 -P 6447 -uinnodbcluster -pStrong_Password1! -e「select@@hostname;」
    完了


    1. Oracleデータベースの下限と上限のあるFORALLステートメント

    2. SQLServerでの1対1の関係の定義

    3. OracleWarehouseBuilderを使用したデータウェアハウスETLデータプロファイリング

    4. 陳記法