验证读写分离及负载均衡

  1. 创建测试数据库和测试表。

    1. 连接MySQL数据库。
      1
      /usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysqlm.sock
      
    2. 创建测试数据库和测试表。
      1
      2
      3
      4
      5
      6
      7
      create database sysbench;
      use sysbench;
      CREATE TABLE `test1` (
        `id` bigint(20) NOT NULL,
        `report_serverid` varchar(100) DEFAULT NULL,
        PRIMARY KEY (`id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
      
    3. 确认数据是否同步到从库1。
      1
      2
      3
      4
      /usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysqls.sock
      show databases;
      use sysbench;
      show tables;
      
    4. 确认数据是否同步到从库2。
      1
      2
      3
      4
      /usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysqls2.sock
      show databases;
      use sysbench;
      show tables;
      

  2. 启动MySQL Router。

    1
    mysqlrouter &
    

  3. 验证MySQL Router端口是否正常启动。

    1
    2
    netstat -an|grep 6446
    netstat -an|grep 6447
    

    回显内容与图片内容一致,则表示已正常启动。

  4. 执行查询测试。

    1. 编辑文件。
      1
      vim /home/read_6446.sh
      
    2. 添加如下内容。
      1
      2
      3
      4
      5
      #!/bin/bash
      for i in {1..1000}
      do
      /usr/local/mysql/bin/mysql -uroot -p123456 -P6446 -h127.0.0.1 -e "select @@server_id"
      done
      
    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    4. 执行读请求脚本。
      1
      sh /home/read_6446.sh
      

      写端口(6446端口)读请求都在PRIMARY节点上,符合预期

    5. 编辑文件。
      1
      vim /home/read_6447.sh
      
    6. 添加如下内容。
      1
      2
      3
      4
      5
      #!/bin/bash
      for i in {1..1000}
      do
      /usr/local/mysql/bin/mysql -uroot -p123456 -P6447 -h127.0.0.1 -e "select @@server_id"
      done
      
    7. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    8. 执行读请求脚本。
      1
      sh /home/read_6447.sh
      

      读端口(6447端口)在两台SECONDARY节点上轮询,符合预期

  5. 执行写入测试。

    1. 编辑文件。
      1
      vim /home/write_6446.sh
      
    2. 添加如下内容。
      1
      2
      3
      4
      5
      #!/bin/bash
      for i in {1..1000}
      do
      /usr/local/mysql/bin/mysql -uroot -p123456 -P6446 -h127.0.0.1 -Dsysbench -e "insert into test1(id,report_serverid) values($i,@@server_id)"
      done
      
    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    4. 执行写请求脚本。
      1
      sh /home/write_6446.sh
      
    5. 确认测试数据。
      1
      /usr/local/mysql/bin/mysql -uroot -p123456 -P6446 -h127.0.0.1 -Dsysbench -e "select * from test1"
      

      写端口(6446端口)写的请求都在PRIMARY节点上,测试符合预期。

    6. 通过6447端口写入测试。
      1
      /usr/local/mysql/bin/mysql -uroot -p123456 -P6447 -h127.0.0.1 -Dsysbench -e "insert into test1(id,report_serverid) values(1001,@@server_id)"