consul1.6實現Mysql-Gtid主從讀寫分離和高可用-03

規劃

consul1.6實現Mysql-Gtid主從讀寫分離和高可用-03

Mysql Gtid主從配置

https://blog.51cto.com/9025736/2500516

consul集羣搭建

https://blog.51cto.com/9025736/2500976

建立mysql用戶並受權(mysql服務器須要受權)

MySQL [(none)]> grant all on *.* to 'han'@'%' identified by 'hanye131';
 MySQL [(none)]> flush privileges;

配置consul (consul client端 server3 和server4)

[root@server4 consul.d]# cd /etc/consul.d
   [root@server4 consul.d]# cat mysql-write.json 
         {
      "services": [
        {
          "name": "mysql-master",
          "tags": [
             "mysql-179"
          ],
          "address": "192.168.31.179",
          "port": 3306,
          "checks": [
            {
              "args": ["/usr/bin/bash","/data/mysql_master.sh"],
              "interval": "10s",
              "timeout": "1s"
            }
          ]
        }
      ]
    }

 [root@server4 consul.d]# cat mysql-readonly.json 
    {
      "services": [
        {
          "name": "mysql-slave",
          "tags": [
             "mysql-180"
          ],
          "address": "192.168.31.180",
          "port": 3306,
          "checks": [
            {
              "args": ["/usr/bin/bash","/data/mysql_slave.sh"],
              "interval": "10s",
              "timeout": "1s"
            }
          ]
        }
      ]
    }
  [root@server4 consul.d]# cat /data/mysql_master.sh 
      #!/bin/bash
      mysql -uhan -phanye131 -h 192.168.31.179 -e "select 1;"
      if [ $? -eq 0 ]; then
        exit 0
      else
        exit 2
      fi
  [root@server4 consul.d]# cat  /data/mysql_slave.sh 
      #!/bin/bash
      mysql -uhan -phanye131 -h 192.168.31.180 -e "select 1;"
      if [ $? -eq 0 ]; then
        exit 0
      else
        exit 2
      fi
   [root@server4 consul.d]# scp /data/mysql_*.sh server3:/data/
     [root@server4 consul.d]# scp /etc/consul.d/mysql-* server3:/etc/consul.d/

重載consul(server3和server4)

consul reload

測試檢測

consul1.6實現Mysql-Gtid主從讀寫分離和高可用-03
consul1.6實現Mysql-Gtid主從讀寫分離和高可用-03
consul1.6實現Mysql-Gtid主從讀寫分離和高可用-03
consul1.6實現Mysql-Gtid主從讀寫分離和高可用-03

中止server3 consul

consul1.6實現Mysql-Gtid主從讀寫分離和高可用-03
[root@server2 consul.d]# dig mysql-master.service.consul
[root@server2 consul.d]# dig mysql-slave.service.consulmysql

正常登陸訪問

consul1.6實現Mysql-Gtid主從讀寫分離和高可用-03

高可用配置

配置consul (consul client端 server3 和server4)
[root@server3 consul.d]# cat mysql-write.json
    {
      "services": [
        {
          "id": "mysql1",
          "name": "mysql",
          "tags": [
            "master"
          ],
          "address": "192.168.31.178",
          "port": 3306,
          "checks": [
            {
              "args": ["/usr/bin/bash","/data/mysql_master.sh"],
              "interval": "5s"
            }
          ]
        },
        {
          "id": "mysql2",
          "name": "mysql",
          "tags": [
            "master"
          ],
          "address": "192.168.31.179",
          "port": 3306,
          "checks": [
            {
              "args": ["/usr/bin/bash","/data/mysql_master2.sh"],
              "interval": "5s"
            }
          ]
        }
      ]
    }

腳本

[root@server3 consul.d]# cat /data/mysql_master.sh  /data/mysql_master2.sh 
#!/bin/bash
mysql -uhan -phanye131 -h 192.168.31.179 -e "select 1;"
if [ $? -eq 0 ]; then
  exit 0
else
  exit 2
fi
#!/bin/bash
mysql -uhan -phanye131 -h 192.168.31.178 -e "select 1;"
if [ $? -eq 0 ]; then
  exit 0
else
  exit 2
fi
相關文章
相關標籤/搜索